每次PHP更改键时循环多维数组
最近回到基本PHP,遇到了一个我似乎无法用JSON响应克服的绊脚石。我已经将响应转换为数组,但是数组是多维的(我想!),我想要从中提取值的数组每次都会更改其键值,因此不确定如何隔离它 下面是数组,我希望提取的值是关键字(它不断更改“garmin gps系统”、“satmap gps系统”等)、与此相关的Google位置和URL Array ( [api] => cognitiveSEO API [data] => Array ( [status] => success [data] => Array ( [2015-07-16] => Array ( [garmin gps systems] => Array ( [locale] => en-uk [google] => Array ( [position] => [url] => ) [bing] => Array ( [position] => 8 [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/garmin ) [yahoo] => Array ( [position] => 8 [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/garmin ) ) [satmap gps systems] => Array ( [locale] => en-uk [google] => Array ( [position] => 25 [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/satmap ) [bing] => Array ( [position] => 4 [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/satmap ) [yahoo] => Array ( [position] => 4 [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/satmap ) ) 大堆 ( [api]=>认知SEO api [数据]=>阵列 ( [状态]=>成功 [数据]=>阵列 ( [2015-07-16]=>阵列 ( [garmin gps系统]=>阵列 ( [地区]=>英国英语 [谷歌]=>阵列 ( [位置]=> [网址]=> ) [bing]=>阵列 ( [位置]=>8 [网址]=>http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/garmin ) [yahoo]=>数组 ( [位置]=>8 [网址]=>http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/garmin ) ) [卫星地图gps系统]=>阵列 ( [地区]=>英国英语 [谷歌]=>阵列 ( [位置]=>25 [网址]=>http://www.aboveandbeyond.co.uk/gps-and-navigation/satmap ) [bing]=>阵列 ( [位置]=>4 [网址]=>http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/satmap ) [yahoo]=>数组 ( [位置]=>4 [网址]=>http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/satmap ) ) 就我到目前为止的代码而言,我已经设法获取JSON,将其转换为数组,并尝试使用下面的foreach循环将这些值打印到表中,但我不确定如何引用关键字值 foreach($data as $rows) { echo ''; echo ''.$rows['??'].''; echo ''.$rows['position'].''; echo ''.$rows['url'].''; } foreach($行数据){ 回声'; 回显“.$rows[”??“]”; 回显'.$rows['position'].'; 回显'.$rows['url'].'; }每次PHP更改键时循环多维数组,php,arrays,json,multidimensional-array,Php,Arrays,Json,Multidimensional Array,最近回到基本PHP,遇到了一个我似乎无法用JSON响应克服的绊脚石。我已经将响应转换为数组,但是数组是多维的(我想!),我想要从中提取值的数组每次都会更改其键值,因此不确定如何隔离它 下面是数组,我希望提取的值是关键字(它不断更改“garmin gps系统”、“satmap gps系统”等)、与此相关的Google位置和URL Array ( [api] => cognitiveSEO API [data] => Array (
非常感谢您的任何帮助,我已经到处搜索了,但到目前为止还没有找到任何东西。我会将该数组分配给
$arr
变量并迭代,假设有许多日期,按以下方式进行:
foreach ($arr['data']['data'] as $date => $data) {
foreach ($data as $gps_key => $gps_data) {
$final[$date][] = array(
"key" => $gps_key,
"position" => $gps_data['google']['position'],
"url" => $gps_data['google']['url']
);
}
}
var_dump($final);
结果:
Array
(
[2015-07-16] => Array
(
[0] => Array
(
[key] => garmin gps systems
[position] =>
[url] =>
)
[1] => Array
(
[key] => satmap gps systems
[position] =>
[url] =>
)
)
)
即使更改键值,您仍然可以使用
$array[0]
,$array[1]
等进行迭代。我不理解这个问题。只有位置
和url
,而且在“garmin gps系统”、“satmap gps系统”之间似乎没有变化,它们都在同一个数组中。你能澄清你的问题吗?太棒了,这很有效。你能用同一个循环从['google'中拉出['position']和['url']吗数组?是的..问题是一旦位置/url被拉出来,你想把它放在哪里。它应该放在同一个最终数组中吗?我的目标是能够访问关键字值,这要感谢你自己!位置和url值的[谷歌]要在表中显示的数组-关键字列、位置列和URL列。好的,我更新了我的答案。请尝试一下,并让我知道它是否工作完美!添加以下内容以将其打印到一个表中,该表似乎对每个($final[$date]作为$rows)都有效:{echo';echo'.$rows['key'.';echo'.$rows['position'.';echo'.$rows['URL']“;回声”;}