我正在使用CURL来处理输出多维数组的多个请求。我需要从输出中提取3个值(url,content_type和http_code),然后分别将每个值分配给一个新数组,即$array1=url $array2=content_type $array3=http_code.
我尝试使用for语句来提取每个值但是没有按预期工作,我得到了
“未定义的偏移:”
数组输出
数组([http://example1/] =>数组([url] => http://example1/ [content_type] => [http_code] => 405 [header_size] => 249 [request_size] => 48 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.328 [namelookup_time] => 0 [connect_time] => 0.172 [pretransfer_time] => 0.172 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => 0 [upload_content_length] => -1 [starttransfer_time] => 0.328 [redirect_time] => 0 [redirect_url] => [primary_ip] => 204.79.197.200 [certinfo] => Array()[primary_port] => 80 [local_ip] => 192.168.2.12 [local_port] => 55536)[http://example2/] =>数组([url] => http://example2/ [content_type] =>为text / html; charset = utf-8 [http_code] => 200 [header_size] => 699 [request_size] => 57 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.453 [namelookup_time] => 0.015 [connect_time] => 0.203 [pretransfer_time] => 0.203 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0.453 [redirect_time] => 0 [redirect_url] => [primary_ip] => 104.16.34.249 [certinfo] => Array()[primary_port] => 80 [local_ip] => 192.168.2.12 [local_port] => 55539))
for($y=0;$y<= (count($array1)-1);$y++){
echo $array1 [$y][0][1][2];
}
答案 0 :(得分:0)
如果你想得到这个:
$array1 = [
'content_type' => ['', 'text/html; charset=utf-8']
];
$array2 = [
'url' => ['http://example1/', 'http://example2/']
];
$array3 = [
'http_code' => [405, 200]
];
然后尝试使用foreach
循环。
foreach ($output as $url => $values) {
$array1['content_type'][] = $values['content_type'];
$array2['url'][] = $values['url'];
$array3['http_code'][] = $values['http_code'];
}
详细了解foreach
loop和Array
type。同样在关联数组中,您无法使用数字索引获取值,而是使用字符串而不是。