我是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
我尝试了其他解决方案,但无济于事。也许我并不完全理解发生了什么,但我无法做任何我需要做的事情。 谢谢!
答案 0 :(得分:1)
嗯,这完全取决于你想要的返回方式。
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
答案 1 :(得分:0)
假设$ data是粘贴内容中var_dump的内容:
foreach($data as $record) {
//$record['name'] is now something like "Brent's medical center"
}
请注意,您必须将日期字段处理为比字符串更有用的内容。
答案 2 :(得分:0)
您的变量是一个填充了关联数组的数组。因此,当您在$key
上进行循环操作时,这不是数据,而是父数组的索引。
因此,只需更改您正在处理的数组部分即可实现原始代码示例。
foreach ($obj as $key => $value) {
print_r($value);
}
现在每个$value
都是具有键名称,日期,交易类型等的关联数组。因此,您可以直接获取值,例如第一个循环的$value['Name']
将是“布伦特医疗中心”
答案 3 :(得分:0)
脚本回显正是你要求它回应 - 数组键(索引)。数组有3个值,因此其键为0,1,2。
看起来你需要$value
变量insode foreach-loop。
我希望它有所帮助。
答案 4 :(得分:0)
以下是您问题的简化版本。将数组替换为此处的数组。
<?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
答案 5 :(得分:0)
您有嵌套对象,请尝试以下操作:
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>';