从多维关联数组中获取所有值



如何从多维关联数组中获得所有值我不想使用print_r,我想控制我的数组,把所有的值在正常的数组中唯一的值我的数组是这样的

array (size=10)
  0 => 
    array (size=3)
      0 => 
        array (size=1)
          'Campaign' => string 'DEMO' (length=4)
      1 => 
        array (size=1)
          'Campaign' => string 'Home_Sec' (length=8)
      2 => 
        array (size=1)
          'Campaign' => string '' (length=0)
  1 => 
    array (size=0)
      empty
  2 => 
    array (size=0)
      empty
  3 => 
    array (size=1)
      0 => 
        array (size=1)
          'Campaign' => string 'Back_Brace' (length=10)
  4 => 
    array (size=2)
      0 => 
        array (size=1)
          'Campaign' => string 'Home_Sec' (length=8)
      1 => 
        array (size=1)
          'Campaign' => string '' (length=0)
  5 => 
    array (size=1)
      0 => 
        array (size=1)
          'Campaign' => string 'home_Sec_2' (length=10)
  6 => 
    array (size=1)
      0 => 
        array (size=1)
          'Campaign' => string 'Burial_Ins' (length=10)
  7 => 
    array (size=0)
      empty
  8 => 
    array (size=0)
      empty
  9 => 
    array (size=0)
      empty

我不想使用print_r我想控制我的数组把所有的值都放在普通数组中只有唯一的值

array_walk是一个选项,但这里有另一个选项,如果你想尝试自己编写一些代码,递归地解决这个问题

这将把任何 n-max级别的数组平化为包含所有子数组(包括初始数组本身)的所有值的单个数组

<?php
$array = array(
1 => array(1, 2, 3, 4 => array(
1, 2, 3, 4
)),
4, 5);
function recurse_values($array) {
    if (is_array($array)) {
        $output_array = array();
        foreach ($array as $key=>$val) {
            $primitive_output = recurse_values($val);
            if (is_array($primitive_output)) {
                $output_array = array_merge($output_array, $primitive_output);
            }
            else {
                array_push($output_array, $primitive_output);
            }
        }
        return $output_array;
    }
    else {
        return $array;
    }
}
print_r(recurse_values($array));
?>

如果您需要唯一的值,您可以在最后添加array_unique来完成此操作。

可以使用array_walk

$array = array(...); //your values here
function output($item, $key) {
     echo $key . ' =>' . $item;
}
array_walk($array, 'output');

您是否在问如何将这个多维数组"扁平化"为一维?类似问题的可能解决方案……如何扁平化多维数组?

相关内容

  • 没有找到相关文章

最新更新