【问题标题】:Need help create new array from some array in PHP需要帮助从 PHP 中的某个数组创建新数组
【发布时间】:2016-08-24 21:48:17
【问题描述】:

请帮我解决以下问题:

我有三个数组:

array(3) {
    [0]=>
        array(2) {
            ["name"]=>string(1) "A",
            ["location"]=>string(9) "first loc"
        }
    [1]=>
        array(2) {
            ["name"]=>string(1) "A",
            ["location"]=>string(9) "second loc"
    }
    [2]=>
        array(2) {
            ["name"]=>string(1) "B",
            ["location"]=>string(9) "third loc"
    }
}

前两个数组具有相同的键和值。

请帮我在 PHP 中从以上三个创建一个新数组,如下所示:

array(2) {
    [0] => 
        array(1) {
            ["A"] => 
                 array(2) {
                      [0]=> string(9) "first loc",
                      [1]=> string(9) "second loc"
              }
          },
    [1] => 
        array(1) {
            ["B"] => 
                array(1) {
                    [0]=> string(9) "third loc"
                }
           }
}

【问题讨论】:

  • 你对array(2) { ['A'] => array, ['B'] => array }还好吗?
  • @PriyeshKumar 是的。你能帮助我吗。谢谢。

标签: php arrays multidimensional-array


【解决方案1】:

试试这个

<?php
// sample data to work on
$a = array(
    0=> array(
        "name"=>  "A",
        "location"=>"0 loc"
    ),
    1=> array(
        "name"=>  "A",
        "location"=>"1 loc"
    ),
    2=> array(
        "name"=>"B",
        "location"=>"2 loc"
    ),
    3=> array(
        "name"=>"B",
        "location"=>"3 loc"
    ),
    4=> array(
        "name"=>"A",
        "location"=>"4 loc"
    ),
    5=> array(
        "name"=>"B",
        "location"=>"5 loc"
    )
);

echo '<pre>';

$b = array();

foreach($a as $v) {

    if( isset( $b[ $v['name'] ] )) {
        // If 'A', 'B', .. so on key already exist, push this item's location
        array_push( $b[ $v['name'] ], $v['location'] ) ;
    } else {
        // Create new key
        $b[ $v['name'] ] = array($v['location']); 
    }
}
print_r($b);
?>

输出:

Array
(
    [A] => Array
        (
            [0] => 0 loc
            [1] => 1 loc
            [2] => 4 loc
        )

    [B] => Array
        (
            [0] => 2 loc
            [1] => 3 loc
            [2] => 5 loc
        )

)

【讨论】:

  • 完美工作。非常感谢。
猜你喜欢
  • 2013-12-08
  • 1970-01-01
  • 2011-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
相关资源
最近更新 更多