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;
}