4

次のようなマルチアレイがあります。

 array(2) {
      [0]=>
      array(8) {
        [0]=>
        string(1) "3"
        ["Id"]=>
        string(1) "3"
        [1]=>
        string(8) "Portugal"
        ["Country"]=>
        string(8) "Portugal"
        [2]=>
        string(8) "sometext"
        ["Type"]=>
        string(8) "sometext"
        [3]=>
        string(1) "0"
        ["xptoabcdef"]=>
        string(1) "0"
      }
      [1]=>
      array(8) {
        [0]=>
        string(1) "4"
        ["Id"]=>
        string(1) "4"
        [1]=>
        string(8) "Portugal"
        ["Country"]=>
        string(8) "Portugal"
        [2]=>
        string(8) "sometext"
        ["Type"]=>
        string(8) "sometext"
        [3]=>
        string(2) "22"
        ["xptoabcdef"]=>
        string(2) "22"
      }

最も簡単な方法で配列から「国」列を削除するにはどうすればよいですか?

4

3 に答える 3

8

で何かを試してくださいarray_map()

$new_array = array_map(function($v) {
    unset($v['Country']);
    return $v;
}, $old_array);

デモ

于 2013-11-13T21:40:23.317 に答える
0

配列とそのサブ配列内のキー (または複数のキー) のすべてのインスタンスを削除するには (深さに関係なく):

print_r(deep_delete_keys($arr,'country'));

function deep_delete_keys($arr, $keys) {
    if (!is_array($keys)) $keys = array($keys);
    $filteredArr = array_diff_key( $arr, array_flip( $keys ) );
    foreach ($filteredArr as &$val) {
        if (is_array($val)) {
            $val = deep_delete_keys($val, $keys);
        }
    }
    return $filteredArr;
}
于 2013-11-13T21:51:50.440 に答える