我有这种简单的数组:
$puctures=array('1_noname.jpg','2_new.jpg','1_ok.jpg','3_lets.jpg','1_stack.jpg','1_predlog.jpg','3_loli.jpg');
我想创建一个新数组,我将只包含以 1_ 开头的元素示例
$new=array('1_noname.jpg','1_ok.jpg','1_stack.jpg','1_predlog.jpg');
类似 array_pop 但如何?
我有这种简单的数组:
$puctures=array('1_noname.jpg','2_new.jpg','1_ok.jpg','3_lets.jpg','1_stack.jpg','1_predlog.jpg','3_loli.jpg');
我想创建一个新数组,我将只包含以 1_ 开头的元素示例
$new=array('1_noname.jpg','1_ok.jpg','1_stack.jpg','1_predlog.jpg');
类似 array_pop 但如何?
$new = array_filter(
$puctures,
function($a) {return substr($a, 0, 2) == '1_'; }
);
使用array_filter()获取您的数组:
$new = array_filter($puctures, function($item)
{
//here strpos() may be a better option:
return preg_match('/^1_/', $item);
});
一个简单的循环就可以了。
foreach ($pictures as $picture) {
if (substr($picture, 0, 2) == "1_") {
$new[] = $picture;
}
}
这个例子使用array_push()
&strpos()
$FirstPictures = array();
foreach( $pictures as $pic => $value ) {
if ( strpos( $value, '1_' ) !== 0 ) {
array_push( $FirstPictures, $pic );
}
}
$puctures=array('1_noname.jpg','2_new.jpg','1_ok.jpg','3_lets.jpg','1_stack.jpg','1_predlog.jpg','3_loli.jpg');
$new=array();
foreach($puctures as $value)
{
if(strchr($value,'1'))
$new[]=$value;
}
echo "<pre>"; print_r($new);