php数组字符串键索引
我有以下代码:php数组字符串键索引,php,key,Php,Key,我有以下代码: $a = array(); $b = array('a', 'b'); for($i=0; $i<3; $i++){ $a[] = array($b[$i] => array(1, 2, 3)); } print_r($a); 这就是我试图实现的目标: array ( 'a' => array ( 1, 2, 3 ) 'b' => array ( 1, 2, 3 ) ) 我做错了什么?我不希望$a添加数字元素,
$a = array();
$b = array('a', 'b');
for($i=0; $i<3; $i++){
$a[] = array($b[$i] => array(1, 2, 3));
}
print_r($a);
这就是我试图实现的目标:
array (
'a' => array ( 1, 2, 3 )
'b' => array ( 1, 2, 3 )
)
我做错了什么?我不希望$a添加数字元素,而是包含a、b、c作为索引。有什么建议吗?谢谢您可以设置$a的键,如下所示:
$a = array();
$b = array('a', 'b');
for($i=0; $i<count($b); $i++){
$a[$b[$i]] = array(1, 2, 3);
}
print_r($a);
$a=array();
$b=数组('a','b');
对于($i=0;$i请尝试:
将forloop更改为这样
for($i=0; $i<count($b); $i++){
$a[$b[$i]] =array(1, 2, 3);
}
对于($i=0;$i再迭代一次
$a = array();
$b = array('a', 'b');
for($i=0; $i<3; $i++){
$a[$b[$i]] = array(1, 2, 3);
}
print_r($a);
$a=array();
$b=数组('a','b');
对于($i=0;$i您可以
$a = array();
$b = array('a', 'b');
for($i=0; $i<3; $i++){
if(isset($b[$i])){
$a += array($b[$i] => array(1, 2, 3));
}
}
$a=array();
$b=数组('a','b');
对于($i=0;$i数组(1,2,3));
}
}
让我们检查一下你做错了什么
$a = array();
$b = array('a', 'b'); // Count of elements is 2
for($i=0; $i<3; $i++){ // this will loop 3 times assigning 0,1,2 to $i where. You only needed 0 and 1 for an array with 2 elements
$a[] = array($b[$i] => array(1, 2, 3)); // here you are adding a new element to $a without providing key. So it becomes a numeric indexed array.
}
$a=array();
$b=数组('a','b');//元素的计数为2
对于($i=0;$i数组(1,2,3));//这里您将在不提供键的情况下向$a添加新元素。因此它将成为一个数值索引数组。
}
解决方案:
for($i=0; $i<count($b); $i++){ // you could use $i<2 as well however count($b) makes your code more dynamic and result won't be affected if no of elements in $b changes.
$a[$b[$i]] =array(1, 2, 3); // you put $b[$i] as key for $a which creates an associative array
}
$i=0;$i的
$a = array();
$b = array('a', 'b'); // Count of elements is 2
for($i=0; $i<3; $i++){ // this will loop 3 times assigning 0,1,2 to $i where. You only needed 0 and 1 for an array with 2 elements
$a[] = array($b[$i] => array(1, 2, 3)); // here you are adding a new element to $a without providing key. So it becomes a numeric indexed array.
}
for($i=0; $i<count($b); $i++){ // you could use $i<2 as well however count($b) makes your code more dynamic and result won't be affected if no of elements in $b changes.
$a[$b[$i]] =array(1, 2, 3); // you put $b[$i] as key for $a which creates an associative array
}