【问题标题】:Merging two keyed array in php在php中合并两个键控数组
【发布时间】:2019-11-27 18:41:29
【问题描述】:

我有两个键控数组,比如说

$a = [ 'Arvind' => 'Basu', 'Rampal' => 'Singh' ];

$b = [ 'Anjali' => 'Basu', 'Roopashri' => 'Singh' ];

我需要合并到一起的格式

$c = [ 'Arvind' => 'Basu', 'Anjali' => 'Basu' ,'Rampal' => 'Singh', 'Roopashri' => 'Singh' ];

(基本上是把两个数组加在一起,按姓氏排序)。

我尝试使用 array_merge 函数来合并两个数组,但是,这似乎不起作用。

【问题讨论】:

  • 姓什么?键还是值?
  • @Jeto - 他希望它们排序。

标签: php arrays


【解决方案1】:

您的排序似乎比最初看起来要复杂一些。您想先按值排序,然后按键排序。您可以为此使用array_multisort

<?php
$a = [ 'Arvind' => 'Basu', 'Rampal' => 'Singh' ];

$b = [ 'Anjali' => 'Basu', 'Roopashri' => 'Singh' ];

// You could also use `array_merge`. You should read about the differences.
// https://stackoverflow.com/a/7059731/296555
$c = $b + $a;

array_multisort(array_values($c), SORT_ASC, array_keys($c), SORT_ASC, $c);

var_dump($c);

array(4) {
  ["Anjali"]=> string(4) "Basu"
  ["Arvind"]=> string(4) "Basu"
  ["Rampal"]=> string(5) "Singh"
  ["Roopashri"]=> string(5) "Singh"
}

【讨论】:

    【解决方案2】:

    这应该可以。这是sample

    $a = [ 'Arvind' => 'Basu', 'Rampal' => 'Singh' ];
    $b = [ 'Anjali' => 'Basu', 'Roopashri' => 'Singh' ];
    
    $c = array_merge($a, $b);
    ksort($c);
    echo print_r($c);
    

    【讨论】:

      猜你喜欢
      • 2014-05-08
      • 2010-10-14
      • 1970-01-01
      • 2010-09-14
      • 2011-02-22
      • 2012-02-25
      • 2013-01-28
      相关资源
      最近更新 更多