1

我在PHP中得到了这个数组:

$arr =('1-1.jpg','1-2.jpg','11-3.jpg', '1-4.jpg', '3-5.jpg', '41-5.jpg','1-3.jpg','4-5.jpg','14-5.jpg','54-5.jpg','64-5.jpg','14-5.jpg', '1-5.jpg');

我需要这个数组,但我在服务器上有 PHP 5.27 版本:(

$newarray=('1-1.jpg','1-2.jpg','1-3.jpg', '1-4.jpg', '1-5.jpg');

忘记服务器版本,标准是“1-”。如何获取仅以“1-”开头的所有元素?

4

4 回答 4

5

使用此代码:

<?php
$arr = array('1-1.jpg','1-2.jpg','11-3.jpg', '1-4.jpg', '3-5.jpg', '41-5.jpg','1-3.jpg','4-5.jpg','14-5.jpg','54-5.jpg','64-5.jpg','14-5.jpg', '1-5.jpg');
$newarray = array();
foreach($arr as $item) {
    if(substr($item, 0, 2) == '1-') $newarray[] = $item;
}
sort($newarray); // Add this to sort the array
?>

您可以使用sort后的函数foreach对数组进行排序。

于 2012-08-13T20:53:24.867 回答
1
<?php
$new_array = array();
foreach ($old_array as $line) {
   if (substr($line, 0, 2) == "1-") {
      $new_array[] = $line;
   }
}
?>

这将检查每个元素的前两个字符是否为 1-,如果是,则将其添加到新数组中。

于 2012-08-13T20:54:37.240 回答
1

Another way would be to use PHP's array_filter method:

$arr = array('1-1.jpg','1-2.jpg','11-3.jpg', '1-4.jpg', '3-5.jpg', '41-5.jpg','1-3.jpg','4-5.jpg','14-5.jpg','54-5.jpg','64-5.jpg','14-5.jpg', '1-5.jpg');
$newArr = array_filter($arr, "filterArray"); // stores the filtered array

function filterArray($value){
    return (substr($value, 0, 2) == "1-");
}
于 2012-08-13T22:21:49.277 回答
1

使用preg_grep

$arr = array('1-1.jpg','1-2.jpg','11-3.jpg', '1-4.jpg', '3-5.jpg', '41-5.jpg','1-3.jpg','4-5.jpg','14-5.jpg','54-5.jpg','64-5.jpg','14-5.jpg', '1-5.jpg');

print_r(preg_grep('#^1-#', $arr));

演示:http ://codepad.org/ipDmYEBI

于 2012-08-13T22:07:21.697 回答