【问题标题】:PHP: Converting multidimensional array to single dimensionPHP:将多维数组转换为单维
【发布时间】:2015-01-24 18:17:27
【问题描述】:

我有一个这样的数组:

Array ( 
  [0] => Array ( [fa-glass ] => "\f000" ) 
  [1] => Array ( [fa-music ] => "\f001" ) 
  [2] => Array ( [fa-search ] => "\f002" ) 
  [3] => Array ( [fa-envelope-o ] => "\f003" ) 
  [4] => Array ( [fa-heart ] => "\f004" ) 
  [5] => Array ( [fa-star ] => "\f005" ) 
)

但我想把它弄平,所以它的回报:

Array (
  fa-glass => "\f000",
  fa-music => "\f001",
  fa-search => "\f002",
  fa-envelope-o => "\f003",
  fa-heart => "\f004",
  fa-star => "\f005"     
)

我尝试了一些递归函数,但似乎无法确定正确。我最近尝试的是:

$newArray = array();
foreach($bootstrap_icon_array as $array) {
 foreach($array as $k=>$v) {
   $newArray[$k] = $v;
 }
}

该函数的结果是:

Array ( 
  [fa-glass ] => Array ( [0] => glass [1] => "\f000" ) 
  [fa-music ] => Array ( [0] => music [1] => "\f001" ) 
  [fa-search ] => Array ( [0] => search [1] => "\f002" ) 
  etc...
)

感谢您的帮助!

【问题讨论】:

  • 我认为你的代码应该可以工作。
  • 你最近的尝试结果如何?
  • 您的递归循环应该可以工作,检查您的变量数据或在代码运行后共享 $newArray 的内容

标签: php arrays recursion multidimensional-array


【解决方案1】:

方法有很多,简单试试这个方法

$result = call_user_func_array('array_merge', $array);

echo "<pre>";
print_r($result);
echo "</pre>";

【讨论】:

  • 这似乎返回了与原始数组相似的结果
  • 更正,我的错字将变量传回函数。感谢您发布此回复。
【解决方案2】:

看来我的代码工作正常,但我没有从数组中传回拆分的值,而是在数组中重新传回。

例子:

   $newArray[] = $array;

而不是

  $newArray[] = $array[1];

我犯了愚蠢的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 2016-02-05
    • 2018-05-03
    • 2015-11-17
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多