我有两个不同的数组。首先包含人员名称,其次包含一些有关人员的信息。我想根据名称对第一个进行排序,然后输出名称。同时,我还想从其他数组中输出对应名称的描述。
我本可以使用关联数组,但是两个人可以使用相同的名字。
任何人都可以解释一下,如何从相应位置的第二个数组中获取元素作为输出?
asort($names);
$n_index = 0;
foreach($names as $name) {
echo $name.' '.$descrption[$n_index].'\n';
$n_index++;
}
我不能使用array_search
,因为键或名称不是唯一的。 :)
以下是一些示例数据:
$names = ['Andy', 'Mandy', 'Andy', 'Alex', 'Megan', 'Mandy', 'Megan'];
$description = ['Tall', 'Short', 'Slim', 'Short', 'Tall', 'Fat', 'Tall'];
输出:
Alex Short
Andy Tall
Andy Slim
Mandy Short
Mandy Fat
Megan Tall
任何帮助将不胜感激。
答案 0 :(得分:1)
建立一个明智的数据结构,将两种信息保持在一起,进行排序并输出:
$people = array_map(null, $names, $description);
// $people = [['Andy', 'Tall'], ['Mandy', 'Short'], ...]
usort($people, function ($a, $b) { return strcmp($a[0], $b[0]); });
foreach ($people as $person) {
echo $person[0], ' ', $person[1], PHP_EOL;
}