我是PHP新手,不知道如何继续。我从解码JSOn中得到的数组是:(很抱歉,如果它的格式很奇怪)
array(3) {
[0]=> array(4) {
["Name"]=> string(22) "Brent's Medical Center"
["date"]=> string(26) "/Date(1330449077600-0700)/"
["dealType"]=> string(13) "Capital Lease"
["id"]=> string(11) "MO-N007175A"
}
[1]=> array(4) {
["Name"]=> string(22) "Brent's Medical Center"
["date"]=> string(26) "/Date(1330448929213-0700)/"
["dealType"]=> string(2) "NA" ..... ["id"]=> string(11) "MO-N007172Q" } [2]=> array(4) { ["Name"]=> string(15) "MOC" ["date"]=> string(28) "/Date(-62135571600000-0700)/" ["dealType"]=> string(2) "NA" ["id"]=> string(9) "MC" } }
我使用过这个foreach循环,但不确定如何从关联数组中取出每个单独的项。
foreach ($obj as $key => $value) {
print_r($key);
}
返回:
012
我尝试过其他解决方案,但都无济于事。也许我还没有完全理解发生了什么,但我无法得到任何我需要/想要的东西。谢谢
好吧,这完全取决于您希望它如何返回。
foreach ($obj as $key => $value) {
print_r($value);
}
会像这样返回您的数据:
array(4) {
["Name"]=> string(22) "Brent's Medical Center"
["date"]=> string(26) "/Date(1330449077600-0700)/"
["dealType"]=> string(13) "Capital Lease"
["id"]=> string(11) "MO-N007175A"
}
array(4) {
["Name"]=> string(22) "Brent's Medical Center"
["date"]=> string(26) "/Date(1330448929213-0700)/"
["dealType"]=> string(2) "NA"
["id"]=> string(11) "MO-N007172Q"
}
... etc
如果你想通过你的例子获得单独的数据片段,它会是这样的:
foreach ($obj as $each_array) {
foreach ($each_array as $val){
echo $val . "<br>";
}
}
哪个会返回:
Brent's MedicalCenter
/Date(1330449077600-0700)/
Capital Lease
... etc
如果有嵌套对象,请尝试以下操作:
echo '<table>';
foreach ($obj as $key => $value) {
echo '<tr>';
echo '<td>' . $value->Name . '</td>';
echo '<td>' . $value->date . '</td>';
echo '<td>' . $value->dealType . '</td>';
echo '<td>' . $value->id . '</td>';
echo '</tr>';
}
echo '</table>';
假设$data是粘贴内容中的var_dump'd:
foreach($data as $record) {
//$record['name'] is now something like "Brent's medical center"
}
不过请注意,您必须将日期字段处理成比字符串更有用的内容。
脚本echo正是您要求它echo的内容-数组键(索引)。数组有3个值,因此其键为0、1、2。
看起来您需要在foreach循环中使用$value
变量。
我希望它能有所帮助。
下面是问题的简化版本。用你的数组替换这里的数组。
<?php
$arr[0] = array('uno'=>'one', 'dos'=>'two');
$arr[1] = array('AAAA'=>'aaaa', 'BBBB'=>'bbbb');
foreach ($arr as $obj) {
foreach ($obj as $k=>$v) {
echo "key:$k=>val:$v'n";
}
}
?>
如果你想访问特定的东西,你可以这样做:
echo $arr[1]["BBBB"]; // echoes bbbb
或者。。。
echo $arr[1]["Name"]; // echoes Brent's Medical Center
您的变量是一个充满关联数组的数组。因此,当您在$key
上执行循环和操作时,这不是数据,而是父数组的索引。因此,只需更改您正在处理的数组部分,就可以实现您的原始代码示例。
foreach ($obj as $key => $value) {
print_r($value);
}
现在,每个$value
都是具有键Name、date、dealType等的关联数组。因此,您可以直接获取值,例如,第一个循环的$value['Name']
将是"Brent’s Medical Center"