是否可以定义一个可以通过字符串和数字索引访问元素的数组?使用关联索引和编号索引访问数组元素
1
A
回答
3
你可以这样做。
$arr = array(1 => 'Numerical', 'two' => 'string');
echo $arr[1]; //Numerical
echo $arr['two']; //String
+0
甚至没有接近正确的答案。您正在打印两个具有不同类型索引的不同元素。 – roger 2010-11-30 17:07:10
3
PHP允许字符串和数字索引元素的混合。
$array = array(0=>'hello','abc'=>'world');
echo $array[0]; // returns 'hello'
echo $array['0']; // returns 'hello'
echo $array['abc']; // returns 'world';
echo $array[1]; // triggers a PHP notice: undefined offset
在最后一个项目$array[1]
一仔细观察就会发现,它不等同于数组的第二个元素。
7
array_values()
将返回一个数组中的所有值,并将其索引替换为数字索引。
$x = array(
'a' => 'x',
'b' => 'y'
);
$x2 = array_values($x);
echo $x['a']; // 'x'
echo $x2[0]; // 'x'
另一种方法是构建一套副参照索引。
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);
需要注意的是,如果你不添加或移除指标规划,这里只完成。虽然你可以编辑它们。
3
martswite的答案是正确的,但如果你已经有一个关联数组,它可能无法解决你的问题。以下是一个丑陋的黑客解决此 - 并且应该不惜一切代价避免:
$a = array(
'first' => 1,
'second' => 2,
'third' => 3
);
$b=array_values($a);
print $b[2];
相关问题
- 1. foreach访问索引或关联数组
- 2. 关联与索引数组
- 3. 获取数组元素的索引号
- 4. PHP:关联数组索引问题
- 5. 关联和索引
- 6. Python数组 - 索引元素
- 7. 使用索引返回数组元素
- 8. 按数组/列索引访问数组元素
- 9. 访问数组索引
- 10. jquery访问数组索引
- 11. 从索引访问数组
- 12. 在索引数组PHP关联数组
- 13. 更改索引数组关联数组
- 14. 我可以通过数字索引访问关联数组吗?
- 15. 使用Javascript/jQuery的从元素位/索引获取的数组元素索引
- 16. 使用索引号的订单元素
- 17. 索引访问PHP关联数组表示字符串
- 18. 按照编号/索引访问pictureBox
- 19. 多维数组索引和列访问
- 20. Javascript - 创建数组索引和访问
- 21. 访问元素通过索引
- 22. numpy.where索引内的访问元素
- 23. 按内容访问QVector元素索引
- 24. 按索引访问JavaScript对象元素
- 25. 数组索引与数组元素
- 26. 如何访问PHP数组的字符串索引元素?
- 27. 能够访问索引大于数组长度的元素
- 28. Swift语法:在setter中访问的数组元素的索引?
- 29. Python按值访问元组索引
- 30. 关联数组中的双重索引
我觉得这是你在说什么。像这样创建一个数组:`array('a'=>'x','b'=>'y','c'=>'z')`,并用'$ array [ 1]`(因为它是第二个索引)。是对的吗? – Jonah 2010-11-30 16:57:12