使用关联索引和编号索引访问数组元素

rog*_*ger 1 php arrays

是否可以定义一个数组,我可以通过它们的字符串和数字索引访问元素?

Jon*_*nah 7

array_values() 将返回数组中的所有值,其索引替换为数字.

http://php.net/array-values

$x = array(
    'a' => 'x',
    'b' => 'y'
);
$x2 = array_values($x);

echo $x['a']; // 'x'
echo $x2[0]; // 'x'
Run Code Online (Sandbox Code Playgroud)

另一种方法是建立一套参考指数.

function buildReferences(& $array) {
    $references = array();
    foreach ($array as $key => $value) {
        $references[] =& $array[$key];
    }
    $array = array_merge($references, $array);
}

$array = array(
    'x' => 'y',
    'z' => 'a'
);

buildReferences($array);
Run Code Online (Sandbox Code Playgroud)

请注意,只有在您不打算添加或删除索引时才应该这样做. 你可以编辑它们.