如何将键和值同时添加到PHP数组中

462

看看这段代码:

$GET = array();    
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */

我正在寻找这样的东西,以便:

print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */

有没有一个函数来做到这一点?(因为array_push不能以这种方式工作)

21个回答

4
有些奇怪,但这对我起作用了。
    $array1 = array("Post Slider", "Post Slider Wide", "Post Slider");
    $array2 = array("Tools Sliders", "Tools Sliders", "modules-test");
    $array3 = array();

    $count = count($array1);

    for($x = 0; $x < $count; $x++){
       $array3[$array1[$x].$x] = $array2[$x];
    }

    foreach($array3 as $key => $value){
        $output_key = substr($key, 0, -1);
        $output_value = $value;
        echo $output_key.": ".$output_value."<br>";
    }

4

我写了一个简单的函数:

function push(&$arr,$new) {
    $arr = array_merge($arr,$new);
}

这样我就可以轻松地“upsert”新元素:

push($my_array, ['a'=>1,'b'=>2])

3

3
 $arr = array("key1"=>"value1", "key2"=>"value");
    print_r($arr);

// 打印数组 ['key1'=>"value1", 'key2'=>"value2"]


3

示例array_merge()....

$array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge($array1, $array2); print_r($result);

数组([color] => green,[0] => 2,[1] => 4,[2] => a,[3] => b,[shape] => trapezoid,[4] => 4,)


2
array_push($arr, ['key1' => $value1, 'key2' => value2]);

这很好地运作着。 在数组中,创建了带有其值的关键字。


6
被踩了。这只是在现有的“$arr”数组末尾添加一个新数组。 - AlexioVay

2

在使用keyvalue添加到第一个位置时

$newAarray = [newIndexname => newIndexValue] ;

$yourArray = $newAarray + $yourArray ;

2

嗨,我遇到了同样的问题。我找到了这个解决方案:你应该使用两个数组,然后将它们合并在一起。

 <?php

$fname=array("Peter","Ben","Joe");

$age=array("35","37","43");

$c=array_combine($fname,$age);

print_r($c);

?>

reference : w3schools


1

这里已经给出了一些很好的例子。只需添加一个简单的示例,将关联数组元素推送到根数值索引。

$intial_content = array();

if (true) {
 $intial_content[] = array('name' => 'xyz', 'content' => 'other content');
}

0
array_push($GET, $GET['one']=1);

这对我有效。


1
这会执行 $GET['one']=1,然后使用该语句的返回值(=1,rvalue),然后执行 array_push($GET, 1)。结果为 [0]->1,[one]->1。 - KekuSemau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接