无法访问php中的多维数组的第4级数组

时间:2015-06-14 16:16:48

标签: php arrays curl multidimensional-array

我正在尝试从嵌套在PHP中的多维数组中的数组中访问数据。我可以获得第一个数组级别和第二个,但不是第三个。

以下是我调用api时单个结果的输出: http://54.86.204.230/process/pe_trxngetONE.php

我的代码正在提取所有结果并尝试循环以获取Property->地址下的FullAddress。我以为我可以做一些简单的事情,比如$ array ['Property'] ['Address'] ['FullAdress'],但是什么都不返回。

这是我的代码:

$cSessionTrxn = curl_init(); curl_setopt($cSessionTrxn,CURLOPT_URL,$pe_getTrxn); curl_setopt($cSessionTrxn,CURLOPT_RETURNTRANSFER,true); curl_setopt($cSessionTrxn,CURLOPT_HEADER, false); $resultTrxn=curl_exec($cSessionTrxn); curl_close($cSessionTrxn);
$itemlist = json_decode($resultTrxn,true); foreach ($resultarrayTrxn as $rowTrxn){ $resultIDTrxn=$rowTrxn['ID']; $mlsTrxn=$rowTrxn['MLS']; $transactionTypeTrxn=$rowTrxn['Type']; $participantsTrxn=$rowTrxn['Participants']; foreach($rowTrxn['Property']
as $property) { $fulladdresstrxn = $property['Address']['FullAddress']; } $displayresultTrxn='



<tr class="' . (++$count%2 ? " odd " : "even ") . '">'; $displayresultTrxn.='
  <td><a href="'.$baseurl.'/process/refreshSession.php?id='.$resultIDTrxn.'" class="selectclick" id="'.$resultIDTrxn.'">'.$resultIDTrxn.$fulladdresstrxn.'</a>
  </td>'; $displayresultTrxn.='
  <td>'.$mlsTrxn.'</td>'; $displayresultTrxn.='
  <td>Submitted</td>'; $displayresultTrxn.='
  <td>'.$transactionTypeTrxn.'</td>'; $displayresultTrxn.='
  <td>
    <div class="progress progress-striped active">
      <div class="progress-bar progress-bar-default" style="width: 0%">0%</div>
    </div>
  </td>'; //$displayresultTrxn.='
  <td>tot:'.$formcounter.',dn: '.$formitems.'</td>';/*test percentdone*/ $displayresultTrxn.='
  <td>0</td>'; $displayresultTrxn.='
</tr>'; echo $displayresultTrxn; }

我尝试这只是显示所有内容,但它在第二级后停止回响:

			foreach ($resultarrayTrxn as $key => $value){
							if(is_array($value)){
								foreach($value as $subkey => $subvalue){
									if(is_array($subvalue)){
										foreach($subvalue as $subsubkey => $subsubvalue){
											if(isset($subsubvalue)){
												if(is_array($subsubvalue)){
												
												foreach($subsubvalue as $subsubsubkey => $subsubsubvalue){								
													if(($subsubsubkey)){
														foreach($subsubsubvalue as $subsubsubsubkey => $subsubsubsubvalue){
														
																if(is_array($subsubsubsubvalue)){
																foreach($subsubsubsubvalue as $subsubsubsubsubkey => $subsubsubsubsubvalue)
																{echo "6- ".$subsubsubsubsubkey.": ".$subsubsubsubsubvalue."<br />";}
															} else {
														
														echo "5- ".$subsubsubsubkey.": ".$subsubsubsubvalue."<br />";}}
													} else 
													{
												echo "4- ".$subsubsubkey.": ".$subsubsubvalue."<br />";
												echo "4- ".$subsubsubkey['FullAddress'].": ".$subsubsubvalue."<br />";
												
												}
												
												}
											}
											} else {
										echo "3- ".$subsubkey.": ".$subsubvalue."<br />";}}
										} else {
								echo "2- ".$subkey.": ".$subvalue."<br />";}}
									} else {
							echo "1- ".$key.": ".$value."<br />";
							}							
						echo "<br>..............................................................<br>";
						}

感谢您的任何建议或指示!!我非常感激。被困在这里:(

1 个答案:

答案 0 :(得分:1)

哦,你可以拥有你想要的尺寸!

例如,以下代码显示1:

$array[0][0][0][0] = 1;
echo $array[0][0][0][0];

要做你想做的事,使用递归函数会好得多:

function displayArray($array, $id) {
echo $id.'-';
foreach ($array as $key => $value) {
if(is_array($value)) {
displayArray($value, $id+1);
} else {
echo $key .': '.$value;
}
echo '<br />';
}
}

然后:

displayArray($resultarrayTrxn,1);

编辑:

仅用于测试,它更容易使用:

echo '<pre>';
print_r($my_array);
echo '</pre>';

编辑:

对于您的代码,您能告诉我们您如何定义$ resultarrayTrxn吗? 你能“打印”这个阵列吗?

编辑:

我已更正了我的代码。

希望有所帮助