我需要在关联数组中指定一个数字作为键名,但如果我这样做:
// Places (generated by mysql)
$places = array (
0 => '1234',
1 => '2345'
);
// Week stats (generated by mysql)
$week = array (
1234 =>
array (
0 =>
array (
'iid' => '1234',
'mid' => 'xxxxxxxx',
'name' => 'Name1',
),
1 =>
array (
'iid' => '1234',
'mid' => 'xxxxxxxx',
'name' => 'Name3',
)
),
2345 =>
array (
0 =>
array (
'iid' => '2345',
'mid' => 'xxxxxxxx',
'name' => 'Name2',
),
2 =>
array (
'iid' => '2345',
'mid' => 'xxxxxxxx',
'name' => 'Name4',
)
)
);
foreach($places as &$place) {
echo $place;
$i = 0;
foreach($week[$i] as &$value) {
echo $value["name"];
$i++;
}
}
它不起作用: http://codepad.viper-7.com/Y1g37t
因为似乎我应该用它来调用它:
echo $arr[<specific index>];
相反,我需要将“1234”和“2345”设置为字符串,如此数组:
$arr = Array("foo" => "bar");
所以我可以用
来调用它$arr[0] // bar
我该怎么办?
感谢@kirilloid
我使用此代码:
$vararr = array_keys($week);
$key = $vararr[$i];
获取密钥
答案 0 :(得分:3)
因为它是一个地图和地图将值与键相关联所以你必须这样做:
<?php
$myNumber = 1234;
$myValue = "foo";
$arr = Array( $myNumber => $myValue );
echo $arr[1234];
?>
不要忘记在第一行替换“:”!
要迭代“地图”,您可以使用foreach函数:
foreach($arr as $key=>$value) {
echo $key;
echo $value;
}
这应显示您的密钥和相关值:
1234
foo
这是与简单数组的区别:
$array = array("foo", "bar", "hallo", "world");
echo $array[0];
答案 1 :(得分:2)
答案 2 :(得分:2)
这里没有问题 - 这是应该如何工作的。
如果您创建这样的数组:
$myNumber = 1234;
$myValue = "foo";
$arr = Array( $myNumber => $myValue );
然后元素的索引是1234
,而不是0
。
您可以使用echo $arr[1234]
如果需要循环遍历数组,可以使用
进行循环foreach($arr as $key=>$value) {
// do something with $value
}
答案 3 :(得分:0)
没有问题。由于$ myNumber的值为1234,您应该像这样访问数组元素:
echo $arr[1234];
如果您需要在foor循环中访问它们,您可以将键作为数组获取:
$keys = array_keys($arr);
$keys_count = count($keys);
for ($i=0; i<$keys_count; $i++) {
echo $arr[$keys[$i]];
}