我有这种简单的数组:
$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那样但是怎么样?
答案 0 :(得分:4)
请参阅array_filter()
:
$new = array_filter(
$puctures,
function($a) {return substr($a, 0, 2) == '1_'; }
);
答案 1 :(得分:3)
使用array_filter()获取您的数组:
$new = array_filter($puctures, function($item)
{
//here strpos() may be a better option:
return preg_match('/^1_/', $item);
});
答案 2 :(得分:3)
一个简单的循环就可以了。
foreach ($pictures as $picture) {
if (substr($picture, 0, 2) == "1_") {
$new[] = $picture;
}
}
答案 3 :(得分:2)
此示例使用array_push()
& strpos()
$FirstPictures = array();
foreach( $pictures as $pic => $value ) {
if ( strpos( $value, '1_' ) !== 0 ) {
array_push( $FirstPictures, $pic );
}
}
答案 4 :(得分:0)
$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);