【问题标题】:multidimensional array, transpositional values and merged result多维数组、转置值和合并结果
【发布时间】:2013-05-13 06:00:24
【问题描述】:

我有这些值的数组 $aArg

array ( 0 => 'reviewed_entity', 1 => 'kiosk', )
array ( 0 => 'tripadvisor', 1 => 'tripadvisor2', )
array ( 0 => 'google', 1 => 'google2', )
array ( 0 => 'yahoo', 1 => 'yahoo2', )

我需要让它如下所示。

array ('kiosk'  =>  array ( 'tripadvisor' => 'tripadvisor2','google' => 'google2','yahoo' => 'yahoo2',));
  • 请注意一些事项 Kiosk 是第一个数组的 [1] 的值。它现在是父数组'
  • 其他数组的值为 [0] 转置作为 [1] 的键
  • 所有数组已合并为一个。

谢谢你们,我为了得到最终的合并结果而彻夜难眠,请与我分享获得所需结果的最快方法

【问题讨论】:

  • 这是什么语言?请edit问题并添加适当的标签。

标签: php arrays array-merge array-key


【解决方案1】:

您的输入数组似乎不正确。我以为是这样的。。

<?php $aArg = array(
array ( 0 => 'reviewed_entity', 1 => 'kiosk', ),
array ( 0 => 'tripadvisor', 1 => 'tripadvisor2', ),
array ( 0 => 'google', 1 => 'google2', ),
array ( 0 => 'yahoo', 1 => 'yahoo2', ));


$newArr = array($aArg[0][1] => array());
$i = 0;
foreach($aArg as $arr) {
  if($i) {
    $newArr[$aArg[0][1]][$arr[0]] = $arr[1];
  }
  $i ++;
} 
var_export($newArr);

【讨论】:

    【解决方案2】:

    不确定它是否最快,但我希望你能得到想要的结果。以下代码是在 PHP 中..

    $newArr = array($aArg[0][1] => array());
    
    $i = 0;
    foreach($aArg as $arr) {
      if($i) {
        $newArr[$aArg[0][1]][$arr[0]] = $arr[1];
      }
      $i ++;
    }
    

    【讨论】:

    • 谢谢,但我没有得到正确的结果。我得到“数组('e'=>数组(),)数组('e'=>数组('k'=>'i',),)”见ideone.com/ziXyG8
    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多