我在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 - ”开头的所有元素?
答案 0 :(得分: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
函数对数组进行排序。
答案 1 :(得分:1)
<?php
$new_array = array();
foreach ($old_array as $line) {
if (substr($line, 0, 2) == "1-") {
$new_array[] = $line;
}
}
?>
检查每个元素的前两个字符是否为1,如果是,则将其添加到新数组中。
答案 2 :(得分:1)
$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));
答案 3 :(得分:1)
另一种方法是使用PHP的array_filter
方法:
$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-");
}