我从array
的{{1}}转换了以下JSON response
:
WP REST API
我正在尝试将Array
(
[0] => Array
(
[id] => 6
[convite_id] => Array
(
[0] => 4
)
[nome_do_convidado] => John Doe
[email_do_convidado] => Array
(
[0] => johndoe@gmail.com
)
)
[1] => Array
(
[id] => 5
[convite_id] => Array
(
[0] => 4
)
[nome_do_convidado] => Lorem
[email_do_convidado] => Array
(
[0] => lorem@gmail.com
)
)
)
值循环为:
我尝试使用[email_do_convidado]
循环并获取最后一个循环,现在我已尝试使用foreach()
并获得一个结果,请按照我的脚本运行:
while()
结果是:
我在这里做错了什么?
答案 0 :(得分:2)
尝试使用foreach而不是一段时间。您可以通过将所有数组合并到最终输出中来提取所有电子邮件。
$emails = [];
foreach($myArray as $entry){
$emails = array_merge($emails, $entry['email_do_convidado']);
}
var_dump($emails);
我假设你以后会想要做所有的电子邮件。我会把它留给你。
答案 1 :(得分:0)
它不太清楚,我理解的是你想要每个元素的第一封电子邮件,如果是这样的话,你可以这样做
foreach($array as $value){
echo $value[email_do_convidado][0];
}
另一方面,如果你内部有几封电子邮件" email_do_convidado"你可以循环其他数组
foreach($array as $value){
foreach($value[email_do_convidado] as $email){
echo $email;
}
}
或者,如果你不想在foreach中使用foreach,你可以
//inside the first foreach.
$emails = implode(',', $value[email_do_convidado]);
//and the u echo $emails
echo $emails;
希望我的回答能帮到你。
答案 2 :(得分:0)
您正在寻找的价值观是:
$myArray[0]['email_do_convidado'][0]
$myArray[1]['email_do_convidado'][0]
您的代码是:
while (list ($key, $val) = each ($myArray) ) {
echo $val['email_do_convidado'][$key];
}
(略微修改为更好的风格)
因此您的代码正在尝试检索
$myArray[0]['email_do_convidado'][0]
$myArray[1]['email_do_convidado'][1]
后者不存在。所以我担心你在多个层面都失败了:
尝试:
echo $val['email_do_convidado'][0];