在数组中的数字键之前放置一个命名键

Put a named key before numeric keys in array

需要比较两个数组

工作示例

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);

Array1 输出:

Array ( [a] => green [0] => red [1] => blue ) 

当我这样做的时候

$array1 = array();

while($fetch = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
    $array1[] = $fetch['color'];
}  

我得到这个输出:

Array ([0] => gren [1] => red [2] blue

如何将 "a" 添加到数组并使第一个颜色为数字零?

这添加了 "a" 但它得到了零数

array_unshift($array1,"a");

喜欢

Array ( [0] => a [1] => green

我想要这个

Array ( [a] => green [0]

我不确定你为什么要这样做,但方法如下:

$array1 = array();
while ($fetch = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
    if (empty($array1)) {
        $array1['a'] = $fetch['color'];
    } else {
        $array1[] = $fetch['color'];
    }
}
$arr = array(0 => 'green', 1 => 'red', 2 => 'blue');
$res = array_merge(array('a' => current($arr)), array_slice($arr, 1));

您可以使用 array_mergearray_shift 函数:

$arr = array(0 => 'green', 1 => 'red', 2 => 'blue');
$new = array_merge(array('a' => array_shift($arr)), $arr);

演示: http://codepad.org/osifrZKZ