次のような配列を作成するスクリプトがあります。
[0] => 1_Result1
[1] => 2_Result2
[2] => 3_Result3
しかし、私はそれが次のように出てくることを望みます:
[0] => Result1
[1] => Result2
[2] => Result3
これはどのように行うことができますか?
配列をフィルタリングする方法と配列がどのように形成されるかについて、より具体的なルールを知っておくと役立つ場合がありますが、特定の質問に答えるには:
PHP5.4:
array_map(function ($elem) { return explode('_', $elem)[1]; }, $arr)
PHP 5.3:
array_map(function ($elem) {
$elem = explode('_', $elem);
return $elem[1];
}, $arr);
foreach ($array as $key => $item) {
//Cut 2 characters off the start of the string
$array[$key] = substr($item, 2);
}
または、より派手になり、から切り離したい場合_
:
foreach ($array as $key => $item) {
//Find position of _ and cut off characters starting from that point
$array[$key] = substr($item, strpos($item, "_"));
}
これは、PHP 4 および 5 のどのバージョンでも機能します。
ここ:
<?php
$results = array( "1_result1", "2_result2", "3_result3", "4_reslut4");
$fixed_results = array();
foreach ($results as $result)
{
$fixed_results[]= substr($result, 2);
}
print_r($fixed_results);
?>
戻ります
Array
(
[0] => result1
[1] => result2
[2] => result3
[3] => reslut4
)
警告: これは、削除するプレフィックスのサイズがわかっている場合にのみ機能します (この場合は 2)。