在php中访问多维数组

在php中访问多维数组,php,arrays,Php,Arrays,一个简单的例子,其中州是一个州数组,每个州是一个城市数组。尝试访问$states[0]到$states[n]有效,但在for循环中会回显空值 $states = array( 'California' => array('LA', 'San Diego', 'San Francisco'), 'Arizona' => array('Phoenix'), 'Florida' => array('Miami', 'Jacksoncille', 'Tampa', 'Orlando')

一个简单的例子,其中州是一个州数组,每个州是一个城市数组。尝试访问
$states[0]
$states[n]
有效,但在for循环中会回显空值

$states = array(
'California' => array('LA', 'San Diego', 'San Francisco'),
'Arizona' => array('Phoenix'),
'Florida' => array('Miami', 'Jacksoncille', 'Tampa', 'Orlando'),
'Ohio' => array('Cincinnati', 'Columbus')
);

$arrlength = count($states);

for($x=0;$x<$arrlength;$x++) {

echo '<h2>'.$states[$x].'</h2>'; //returns 4 empty h2

}
$states=数组(
“California”=>数组(“洛杉矶”、“圣地亚哥”、“旧金山”),
'Arizona'=>数组('Phoenix'),
'Florida'=>数组('Miami'、'Jacksoncille'、'Tampa'、'Orlando'),
'Ohio'=>数组('Cincinnati'、'Columbus')
);
$arrlength=计数($states);

对于($x=0;$x这是因为您正在定义键。请尝试循环:

foreach($states as $key => $value) {
    echo $key . '-' . $value;
}

其中,
$key
将是州,
$value
将是城市。

这是因为您正在定义键。请尝试循环:

foreach($states as $key => $value) {
    echo $key . '-' . $value;
}

其中,
$key
将是州,
$value
将是城市。

您应该使用foreach。尝试以下方法:

    foreach($states as $state_name => $cities) {
        echo '<h2>'.$state_name .'</h2>';
        foreach($cities as $city) {
            echo "<h3>".$city."</h3>"
        }
    }
foreach($state作为$state\u name=>$cities){
回显“.$state_name.”;
foreach($cities作为$city){
回音“$city”
}
}

您应该使用foreach。尝试以下方法:

    foreach($states as $state_name => $cities) {
        echo '<h2>'.$state_name .'</h2>';
        foreach($cities as $city) {
            echo "<h3>".$city."</h3>"
        }
    }
foreach($state作为$state\u name=>$cities){
回显“.$state_name.”;
foreach($cities作为$city){
回音“$city”
}
}
$states=数组(
“California”=>数组(“洛杉矶”、“圣地亚哥”、“旧金山”),
'Arizona'=>数组('Phoenix'),
'Florida'=>数组('Miami'、'Jacksoncille'、'Tampa'、'Orlando'),
'Ohio'=>数组('Cincinnati'、'Columbus')
);
foreach($key=>$val)
{
echo$key;
foreach($val作为$value)
回显“.$value.”;
}
$states=数组(
“California”=>数组(“洛杉矶”、“圣地亚哥”、“旧金山”),
'Arizona'=>数组('Phoenix'),
'Florida'=>数组('Miami'、'Jacksoncille'、'Tampa'、'Orlando'),
'Ohio'=>数组('Cincinnati'、'Columbus')
);
foreach($key=>$val)
{
echo$key;
foreach($val作为$value)
回显“.$value.”;
}

数组中没有数字索引,因为它是关联数组。因此您可以调用
$states['Arizona']
,但不能调用
$states[1]

foreach过度使用
foreach
循环:

foreach ($states as $name => $cities) {
    echo $name;
    foreach ($cites as $city) {
        echo $city;
    }
}

您的数组中没有数字索引,因为它是关联数组。因此您可以调用
$states['Arizona']
,但不能调用
$states[1]

foreach过度使用
foreach
循环:

foreach ($states as $name => $cities) {
    echo $name;
    foreach ($cites as $city) {
        echo $city;
    }
}

正如大家所说的那样,foreach是通过数组的最佳方式,因为边界未定义,键也不是数字。无论如何,如果您仍想使用for循环,这可能会有所帮助。但这非常愚蠢,可能会在以后引起问题

$states = array(
    'California' => array('LA', 'San Diego', 'San Francisco'),
    'Arizona' => "cc",
    'Florida' => array('Miami', 'Jacksoncille', 'Tampa', 'Orlando'),
    'Ohio' => array('Cincinnati', 'Columbus')
);


$state_array = array_keys($states);
$city_array = array_values ($states);


for($x=0;$x<count($state_array);$x++) {
    echo "<b>";echo $state_array[$x];echo "</b>";echo "<hr>";
    if(is_array($city_array[$x])){
        for($y=0;$y<count($city_array[$x]);$y++){
            echo $city_array[$x][$y];echo "</br>";      
        }
    }else{
        echo $city_array[$x];echo "</br>";      
    }
    echo "</br>";
}
$states=数组(
“California”=>数组(“洛杉矶”、“圣地亚哥”、“旧金山”),
“亚利桑那州”=>“抄送”,
'Florida'=>数组('Miami'、'Jacksoncille'、'Tampa'、'Orlando'),
'Ohio'=>数组('Cincinnati'、'Columbus')
);
$state\u array=array\u key($states);
$city\u array=数组值($states);

for($x=0;$x正如大家所说,foreach是通过数组的最佳方式,因为边界未定义,键不是数字。无论如何,如果您仍然想使用for循环,这可能会有所帮助。但这非常愚蠢,以后可能会导致问题

$states = array(
    'California' => array('LA', 'San Diego', 'San Francisco'),
    'Arizona' => "cc",
    'Florida' => array('Miami', 'Jacksoncille', 'Tampa', 'Orlando'),
    'Ohio' => array('Cincinnati', 'Columbus')
);


$state_array = array_keys($states);
$city_array = array_values ($states);


for($x=0;$x<count($state_array);$x++) {
    echo "<b>";echo $state_array[$x];echo "</b>";echo "<hr>";
    if(is_array($city_array[$x])){
        for($y=0;$y<count($city_array[$x]);$y++){
            echo $city_array[$x][$y];echo "</br>";      
        }
    }else{
        echo $city_array[$x];echo "</br>";      
    }
    echo "</br>";
}
$states=数组(
“California”=>数组(“洛杉矶”、“圣地亚哥”、“旧金山”),
“亚利桑那州”=>“抄送”,
'Florida'=>数组('Miami'、'Jacksoncille'、'Tampa'、'Orlando'),
'Ohio'=>数组('Cincinnati'、'Columbus')
);
$state\u array=array\u key($states);
$city\u array=数组值($states);
对于($x=0;$xUse代替使用