从指定的字符串创建新数组?

时间:2013-10-11 08:43:48

标签: php arrays array-push

我有这种简单的数组:

$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那样但是怎么样?

5 个答案:

答案 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);