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

Use 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));

demo: http://codepad.org/ipDmYEBI

于 2012-08-13T22:07:21.697 に答える
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-");
}
于 2012-08-13T22:21:49.277 に答える
1
<?php
$new_array = array();
foreach ($old_array as $line) {
   if (substr($line, 0, 2) == "1-") {
      $new_array[] = $line;
   }
}
?>

これは、各要素の最初の 2 文字が 1- であるかどうかを確認し、そうである場合は、それを新しい配列に追加します。

于 2012-08-13T20:54:37.240 に答える