获取一个PHP数组中的所有值

时间:2011-03-27 15:40:22

标签: php arrays

我有这个数组:

  array(3) {
  [0]=>
  array(3) {
    [0]=>
    array(1) {
      [0]=>
      string(2) "14"
    }
    [1]=>
    string(2) "12"
    [2]=>
    string(2) "13"
  }
  [1]=>
  string(2) "10"
  [2]=>
  string(2) "11"
}

是否有一些PHP函数在一个字符串中输出所有值。像这样:

    array(5){
    [0]=>
    string(2) "14"

    [1]=>
    string(2) "12"

    [2]=>
    string(2) "13"

     [3]=>
    string(2) "11"
}

6 个答案:

答案 0 :(得分:2)

您可以使用array_walk_recursive

$output = array();
array_walk_recursive($inputArray,
   create_function('$val, $key, $obj', 'array_push($obj, $val);'), &output)

答案 1 :(得分:1)

$res = array();
array_walk_recursive($ar, function($v, $k, $res) {
  $res[] = $v;
}, &$res);

答案 2 :(得分:1)

另一个选择是使用一些SPL的迭代器 12 iterator_to_array() { {3}} 函数,为自己保存匿名回调的工作。

$leaves = iterator_to_array(
    new RecursiveIteratorIterator(
        new RecursiveArrayIterator($array)
    ),
    FALSE
);

<强>参考文献

  1. RecursiveArrayIterator 3
  2. RecursiveIteratorIterator http://php.net/recursivearrayiterator
  3. iterator_to_array() http://php.net/recursiveiteratoriterator

答案 3 :(得分:0)

你不会得到你想要的,但你可以看到array_walk_recursive

答案 4 :(得分:0)

function flatten_array(array $a) 
{
   array_walk_recursive($a, function($v) use(&$r) { $r[] = $v; });
   return $r;
}

答案 5 :(得分:-1)

不,没有。你必须自己写。