Php 向阵列中添加其他数据

Php 向阵列中添加其他数据,php,Php,我有这样的关联数组 $arr = array( "FIRST" => 1, "SECOND => 2, "FOURTH => 4 ); 其思想是如何根据表达式的不同向该数组“添加”数据。 以下是我想做的: if(3 == 3) { $str = array("THIRD" => 3); } $arr = array( "FIRST" => 1, "SECOND => 2, $str,

我有这样的关联数组

$arr = array(
   "FIRST" => 1,
   "SECOND => 2,
   "FOURTH => 4
);
其思想是如何根据表达式的不同向该数组“添加”数据。 以下是我想做的:

if(3 == 3) {
  $str = array("THIRD" => 3);
}

 $arr = array(
       "FIRST" => 1,
       "SECOND => 2,
       $str,
       "FOURTH => 4
    );

问题是上面的代码将$str添加为$arr中的数组,而不像“THIRD”=>3

您必须在事实之后添加元素:

$arr = array(
   "FIRST" => 1,
   "SECOND" => 2,
   "FOURTH" => 4
);

if (someCondition) {
  $arr["THIRD"] = 3;
}

以后可能需要对数组进行排序。

在此条件下更改行,如下所示。您不需要创建另一个数组并将该数组放入原始数组。只需参考原始数组,如下所示

if(3 == 3) {
  $arr["THIRD"]= 3;
}

您可以检查PHP中的
eval
函数,如下所述:


此代码将输出:

这是一个$string,其中包含我的$name

这是一杯我的咖啡 它

那怎么办

然后可以合并两个阵列:

if(3 == 3) {
  $str = array("THIRD" => 3);
}

 $arr = array(
       "FIRST" => 1,
       "SECOND => 2,
       "FOURTH => 4
    );

$arr = array_merge($arr,$str);
但你也可以用另一种方式:

$arr = array(
       "FIRST" => 1,
       "SECOND => 2,
       "FOURTH => 4
    );

if(3 == 3) {
  $arr["THIRD"]=3;
}
问题是——据我所知——您希望在数组中创建某种顺序。虽然PHP可以对数组进行排序,但它无法处理您正在尝试的内容,因为它不知道
FIRST
必须在
SECOND
之前,依此类推。如何将任何类型的新数据插入阵列上面的anwers已经告诉了您
array\u merge()
是处理这个问题的最好方法之一,我认为

为了达到您的目的,您需要实现一个函数,该函数可以比较您的键,然后将其与
usort()
一起使用,以在数组中创建所需的顺序。您可以只添加新条目,然后重新创建预期的订单。但从有效性的角度来看,这是一个相当糟糕的主意。如果你打算在一个有生产力的环境中使用它,你可能会考虑花费更多的时间在这个问题上,并用一个正确实现的集合对象来替换整个事物,它可以按照你想要的方式处理你的键值对。p> 您缺少了一个
,而且
3==3
总是正确的。推荐
eval()
几乎从来都不是一个好主意。在这种情况下,问题显然与对数组工作方式的误解有关,无法通过
eval()
明智地解决。
if(3 == 3) {
  $str = array("THIRD" => 3);
}

 $arr = array(
       "FIRST" => 1,
       "SECOND => 2,
       "FOURTH => 4
    );

$arr = array_merge($arr,$str);
$arr = array(
       "FIRST" => 1,
       "SECOND => 2,
       "FOURTH => 4
    );

if(3 == 3) {
  $arr["THIRD"]=3;
}