Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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中的Assoc数组中的特定关联键后配对?_Php_Arrays_Associative Array - Fatal编程技术网

如何添加新的[键]=>;[值]在PHP中的Assoc数组中的特定关联键后配对?

如何添加新的[键]=>;[值]在PHP中的Assoc数组中的特定关联键后配对?,php,arrays,associative-array,Php,Arrays,Associative Array,可能重复: 如何在PHP中的Assoc数组中的特定关联键之后添加新的[key]=>[value]对 例如,假设我们有一个名为$fruits的数组: array { [apple] => 1 [banana] => 3 [orange] => 4 } 如何将[plum]=>2添加到$fruits中,使其显示在[apple]键之后,但在[banana]键之前 谢谢。您可能需要使用array\u splice()将阵列分成两部分,然后使用array\u mer

可能重复:

如何在PHP中的Assoc数组中的特定关联键之后添加新的
[key]=>[value]

例如,假设我们有一个名为
$fruits
的数组:

array {
   [apple] => 1
   [banana] => 3
   [orange] => 4
}
如何将
[plum]=>2
添加到
$fruits
中,使其显示在
[apple]
键之后,但在
[banana]
键之前


谢谢。

您可能需要使用
array\u splice()
将阵列分成两部分,然后使用
array\u merge()
重新创建阵列-试试我刚刚设计的这个漂亮功能

现场样品:


如果您的最终目标是基于水果名称的水果序列号(或其他) 例如,若要查找苹果的序列号,您将使用水果['apple'],则数组中的特定元素存在于何处并不重要,若您确实希望以自己的方式查找,则可以使用array_splice()函数 这里有一个很好的教程

假设关联键控数组具有可预测的顺序,这不是好的设计。如果您想要强制命令,您应该在设计中强制执行。例如,按订单号为数组设置键,然后编写自定义函数以按水果名称检索数据


如果你一直假设键有一个自然的顺序,总有一天你会遇到这样的情况:顺序可能与你预期的不一样,并且你的功能会被破坏。

@DaveRandom:这个编辑很好。谢谢。Sandepan Nath的编辑无效:
/***@desc在关联数组的中间添加一个数组值*@param array$arr-要插入的数组*@param string$key-要为新插入的元素指定的键名*@param mixed$val-新插入的元素的值*@param int$index-在哪个序列号处?要将新数组值插入到原始数组$arr*/
编辑中有什么错误?请解释@nonnb。也许句子可以改进,但是…@SandePanath编辑Q或a应该是一些次要的事情,比如格式或语法,而不是添加到答案或发表评论(使用您自己的答案,或者为此添加评论)。然而,因为你的编辑似乎包含了很好的建议,如果你的编辑丢失了,那将是一个悲剧,因此我把它贴在了帖子下面。如你所见,达奇已经收回了他的答案。好了,现在清楚了。所以,这是“无效”的方式。感谢在本例中,您似乎希望按照值的升序对数组进行排序,并维护索引,也称为
asort
<?php
   $orig = array(
       "apple" => 1,
       "banana" => 3,
       "orange" => 4,
   );

   $orig = InsertKeyValuePair($orig, "plum", 2, 1);
   var_dump($orig);

   function InsertKeyValuePair($arr, $key, $val, $index){
      $arrayEnd = array_splice($arr, $index);
      $arrayStart = array_splice($arr, 0, $index);   
      return (array_merge($arrayStart, array($key=>$val), $arrayEnd ));
   }

?>