从PHP数组中删除不同条目的特定部分?

时间:2013-03-19 20:33:42

标签: php arrays

我有一个脚本,可以像这样生成一个数组:

[0] => 1_Result1  
[1] => 2_Result2  
[2] => 3_Result3 

但是我希望它能像这样出来:

[0] => Result1  
[1] => Result2  
[2] => Result3

如何做到这一点?

3 个答案:

答案 0 :(得分:2)

这可能有助于了解有关如何过滤数组及其形成方式的更具体规则,但要回答您的具体问题:

PHP 5.4:

array_map(function ($elem) { return explode('_', $elem)[1]; }, $arr)

PHP 5.3:

array_map(function ($elem) {
    $elem = explode('_', $elem);
    return $elem[1];
}, $arr);

答案 1 :(得分:1)

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的任何版本。

答案 2 :(得分:0)

这里:

<?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)