我真的很陌生。 我有这个json数据
[phone_numbers] => Array
(
[0] => stdClass Object
(
[type] => home
[value] => 123456
)
[1] => stdClass Object
(
[type] => work
[value] => 678910
)
[2] => stdClass Object
(
[type] => mobile
[value] => 1029384675
)
[3] => stdClass Object
(
[type] => other
[value] => 18737540
)
)
我想查看密钥是否存在,如果它们存在则打印它们。如果不存在则打印“N / A”
我有这个代码 - 它可能不是一种优雅的方式。
if (array_key_exists(0,['phone_numbers']))
{
Print "Phone " . $cust_data ['phone_numbers'][0]['type'] . ": " .
$cust_data['phone_numbers'][0]['value'] . "<br>";
}
else
{
print "Phone N/A";
}
if (array_key_exists(1,['phone_numbers']))
{
Print "Phone " . $cust_data ['phone_numbers'][1]['type'] . ": " .
$cust_data['phone_numbers'][1]['value'] . "<br>";
}
else
{
print "Phone N/A";
}
第一个print语句有效,第二个没有。
如果我从第二个print
语句中取出第二个if
语句,它确实有效。
所以问题是为什么它在第二个if
内不起作用。
或者有更好的方法吗?
答案 0 :(得分:0)
我认为这是因为array_key_exits()
的语法。
试试这样。
$cust_data = array(
'phone_numbers' => array(
array('type' => 'home', 'value' => 9876543210),
array('type' => 'work', 'value' => 78734464546),
array('type' => 'mobile', 'value' => 1234567890),
array('type' => 'other', 'value' => 9876343630)
)
);
if ( array_key_exists (0, $cust_data['phone_numbers'])){
Print "Phone " . $cust_data ['phone_numbers'][0]['type'] . ": " .
$cust_data['phone_numbers'][0]['value'] . "<br>";
}
else {
print "Phone N/A";
}
if (array_key_exists(1, $cust_data['phone_numbers'])){
Print "Phone " . $cust_data ['phone_numbers'][1]['type'] . ": " .
$cust_data['phone_numbers'][1]['value'] . "<br>";
} else {
print "Phone N/A";
}
答案 1 :(得分:0)