在PHP中与数值数组相关联

时间:2012-01-08 23:31:08

标签: php arrays associative-array

我有一个关联数组,我想在数字中使用哪些键。我的意思是:阵列有点像这样:

$countries = array
    "AD"  =>  array("AND", "Andorra"),
    "BG"  =>  array("BGR", "Bulgaria")
);

显然AD为0且BG为1,但是当我打印$countries[1]时,它甚至不显示"Array"。 当我打印$countries[1][0]时,它也不会显示任何内容。我有密钥的编号,但我不应该使用关联密钥。

4 个答案:

答案 0 :(得分:12)

array_values的完美用例:

$countries = array_values($countries);

然后您可以按索引检索值:

$countries[0][0]; // "AND"
$countries[0][1]; // "Andorra"
$countries[1][0]; // "BGR"
$countries[1][1]; // "Bulgaria"

答案 1 :(得分:2)

array_keys()将为您提供数组的密钥。 array_values()将为您提供数组的值。两者都将以数字方式编入索引。

答案 2 :(得分:1)

您可以将其转换为数字数组:

    $countries = array(
    "AD"  =>  array("AND", "Andorra"),
    "BG"  =>  array("BGR", "Bulgaria")
);
$con=array();
$i=0;
foreach($countries as $key => $value){
    $con[$i]=$value;
    $i++;
}
echo $con[1][1];

//the result is Bulgaria

答案 3 :(得分:0)

有几种解决方法可以满足您的需求。除了制作辅助键映射数组,注入引用或同时包含数字关联键的ArrayAccess憎恶之外,您还可以使用它:

 print current(array_slice( current(array_slice($countries, 1)), 0));

$countries[1][0]这是一个非常简单的解决方法。请注意,数组键似乎仍然以相同的顺序出现; bemusing。