Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组字符串键索引_Php_Key - Fatal编程技术网

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
}