【发布时间】:2017-08-24 12:31:23
【问题描述】:
$array = [
[
"UF" => "Goias",
[
"Nome" => [
"Avenor",
"KENNEDY",
"JOSE"
],
"Fone" => [
"+55 (91) 1111-1111",
"+55 (33) 2222-2222",
"+55 (93) 3333-3333"
],
"Email" => [
"avenor@example.com",
"kennedy@example.com",
"sabino@example.com"
]
]
],
[
"UF" => "Amazonas",
[
"Nome" => [
"Kelsen",
"Joao",
"Kenia"
],
"Fone" => [
"+55 (91) 4444-4444",
"+55 (33) 5555-5555",
"+55 (93) 6666-6666"
],
"Email" => [
"kelsen@example.com",
"joao@example.com",
"kenia@example.com"
]
]
]
];
我想通过搜索这个数组来创建一个列表并填充列表项。 例如:当用户选择“Goias”时,我必须通过数组搜索“Goias”并返回一个包含“Nome”、“Fone”和“Email”的列表,但我找不到循环这个数组并返回正确的方法价值观。
$selected = isset($_POST['selected']) ? $_POST['selected'] : 'nothing';
$key = array_search($selected,array_column($array, 'UF'));
foreach ($array[$key] as $data){
echo '<li><p>Nome: '.$data["Nome"].'</p><p>Fone: '.$data["Fone"].'</p><p>E-mail: '.$data["Email"].'</p></li>';
};
编辑:
我尝试过这样做:
echo
'<div class="representante-wrapper">
<h3>'.$selected.'</h3>';
foreach ($array[$key] as $data){
foreach($data as $value){
echo '<ul class="flex" id="dados" style="opacity: 1;">';
var_dump($value);
foreach($value["Nome"] as $nome){
echo '<li><p>Nome: '.$nome.'</p></li>';
}
foreach($value["Fone"] as $fone){
echo '<li><p>Fone: '.$fone.'</p></li>';
}
foreach($value["Email"] as $email){
echo '<li><p>E-mail: '.$email.'</p></li>';
}
echo '</ul>';
}
};
echo '</div>';
但结果不是我所期望的
Nome: Kelsen
Nome: Joao
Nome: Kenia
Fone: +55 (91) 4444-4444
Fone: +55 (33) 5555-5555
Fone: +55 (93) 6666-6666
E-mail: kelsen@example.com
E-mail: joao@example.com
E-mail: kenia@example.com
我想要如下,列表中的每个数组:
Nome: Kelsen
Fone: +55 (91) 4444-4444
E-mail: kelsen@example.com
Nome: Joao
Fone: +55 (33) 5555-5555
E-mail: joao@example.com
Nome: Kenia
Fone: +55 (93) 6666-6666
E-mail: kenia@example.com
【问题讨论】:
标签: arrays search multidimensional-array