【问题标题】:array_push() with key value pair带有键值对的array_push()
【发布时间】:2010-11-24 05:07:55
【问题描述】:

我有一个想要添加值的现有数组。

我正在尝试使用array_push() 来实现这一点,但无济于事。

下面是我的代码:

$data = array(
    "dog" => "cat"
);

array_push($data['cat'], 'wagon');

我想要实现的是将 cat 作为键添加到 $data 数组中,并以 wagon 作为值,以便像在 sn-p 中一样访问它下面:

echo $data['cat']; // the expected output is: wagon

我怎样才能做到这一点?

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    那么拥有呢:

    $data['cat']='wagon';
    

    【讨论】:

    • 警告:$a['123'] = 456; - 字符串 '123' 被转换为整数键 123。
    • 对于整数键,您不想将它们包装到引号/字符串中。
    • 不一定。如果其他一些键是像 '123a' 这样的字符串,则可能需要为所有项目保留字符串键。
    【解决方案2】:

    如果你需要添加多个 key=>value,那么试试这个。

    $data = array_merge($data, array("cat"=>"wagon","foo"=>"baar"));
    

    【讨论】:

    • 也可以使用循环。
    • 循环没有帮助。如果要推送具有重复键名的值,您必须使用array_merge
    【解决方案3】:
    $data['cat'] = 'wagon';
    

    这就是向数组添加键和值所需的全部内容。

    【讨论】:

      【解决方案4】:

      例如:

      $data = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue');
      

      用于更改键值:

      $data['firstKey'] = 'changedValue'; 
      //this will change value of firstKey because firstkey is available in array
      

      输出:

      数组([firstKey] => changedValue [secondKey] => secondValue)

      用于添加新的键值对:

      $data['newKey'] = 'newValue'; 
      //this will add new key and value because newKey is not available in array
      

      输出:

      数组 ( [firstKey] => firstValue [secondKey] => secondValue [newKey] => 新值)

      【讨论】:

        【解决方案5】:

        你不需要使用array_push()函数,你可以直接用新键给数组赋值。..

        $array = array("color1"=>"red", "color2"=>"blue");
        $array['color3']='green';
        print_r($array);
        
        
        Output:
        
           Array(
             [color1] => red
             [color2] => blue
             [color3] => green
           )
        

        【讨论】:

        • 您还应该突出显示确切的区别,在这里您使用 = 而不是 , 用于 OP
        • 此代码错误。 array_push 有两个参数,你会得到一个警告,说明你使用它的错误,结果是对 array_push 的调用什么都不做。您的代码的第二行实际上在做的只是$array['color3']='green'。这正是@dusoft 上面所做的。您的代码只是对该解决方案的混淆。
        • @RichardSmith 谢谢你指出我的错误,我已经改变了我的答案。 :)
        【解决方案6】:

        数组['key'] = 值;

        $data['cat'] = 'wagon';
        

        这就是你需要的。 无需为此使用 array_push() 函数。 有时问题很简单,而我们以复杂的方式思考:)。

        【讨论】:

          【解决方案7】:

          就这样做吧:

          $data = [
              "dog" => "cat"
          ];
          
          array_push($data, ['cat' => 'wagon']);
          

          *在 php 7 及更高版本中,数组是使用 [] 创建的,而不是 ()

          【讨论】:

          • 两个问题:array_push 将其第二个以上的参数添加为新值(不是像 array_merge 那样的键值对),PHP 7 很乐意接受 array() 数组语法(以及速记[] 语法)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-14
          • 2018-10-28
          • 2015-01-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多