【问题标题】:Display values with the same name in associate array with php用php在关联数组中显示同名值
【发布时间】:2021-06-14 06:52:21
【问题描述】:

$examscore = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43", "Peter"=>"33");

其中“Peter”=>“35”和“Peter”=>“33”是不同的人,但他们的名字相同

当我 print_r($examscore) 只显示一个 peter 时,但我想获取数组中的所有名称,无论是同名还是非同名,因为我的一些学生有相同的名字

【问题讨论】:

  • 您可以考虑为您的学生使用唯一标识符...

标签: php arrays sorting unique associative-array


【解决方案1】:

你不能在一个 assoc 数组中多次使用同一个键。第一个“Peter”将被覆盖。

最好将数据结构创建为带有数组的数组。

$examscore = [
    ["name" => "Peter", "age" => "35"],
    ["name" => "Ben"  , "age" => "37"],
    ["name" => "Joe"  , "age" => "43"],
    ["name" => "Peter", "age" => "33"]
];

当你需要排序时,你可以使用 array_multisort().


这将按姓名 ASC、年龄 ASC 对 $examscore 排序

array_multisort(array_column($examscore, 'name'), SORT_ASC, $examscore);

$examscore = [
    ['name' => 'Ben', 'age' => '37'],
    ['name' => 'Joe', 'age' => '43'],
    ['name' => 'Peter', 'age' => '33'],
    ['name' => 'Peter', 'age' => '35']
]

这将按年龄 ASC 排序 $examscore,名称 ASC

array_multisort(array_column($examscore, 'age'), SORT_ASC, $examscore);

$examscore = [
    ['name' => 'Peter', 'age' => '33'],
    ['name' => 'Peter', 'age' => '35'],
    ['name' => 'Ben', 'age' => '37'],
    ['name' => 'Joe', 'age' => '43'],
];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 2014-04-28
    • 2018-10-14
    • 2021-01-15
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多