Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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 通过将数组与新插入的元素进行比较来更新数组_Php_Arrays - Fatal编程技术网

Php 通过将数组与新插入的元素进行比较来更新数组

Php 通过将数组与新插入的元素进行比较来更新数组,php,arrays,Php,Arrays,我试图通过与即将出现的元素进行比较来更新数组中的元素 这方面的一个例子是,让我们以四个数组为例 a1[]={14,14,25,25,38,128}//combination like 1 and 4 a2[]={33,55,44,55,22,332}//cost for the combination is 3 and 3 这两个是现有的阵列 现在是另外两个数组 a3[]={146,146} a4[]={333,666} 现在,结果应该与最终的数组类似 a1[]={146,

我试图通过与即将出现的元素进行比较来更新数组中的元素

这方面的一个例子是,让我们以四个数组为例

a1[]={14,14,25,25,38,128}//combination like 1 and 4  
a2[]={33,55,44,55,22,332}//cost for the combination is 3 and 3  
这两个是现有的阵列
现在是另外两个数组

a3[]={146,146}  
a4[]={333,666}   
现在,结果应该与最终的数组类似

a1[]={146,14,25,25,38,128,146}  
a2[]={333,55,44,55,22,332,666}

希望您要删除第一个元素,并且需要从另一个数组中添加第一个和最后一个元素。为了方便起见,我在这里使用了单个数组作为输入

$dataArr = array(array(14,14,25,25,38,128),array(33,55,44,55,22,332));
$replaceArr = array(array(146,146),array(333,666));
$finalArr = array();
foreach ($dataArr AS $key => $data) {
    array_shift($data);
    $first = reset($replaceArr[$key]);
    $end = end($replaceArr[$key]);
    $finalArr[$key] = array_merge(array($first), $data, array($end));
}
echo "<pre>";print_r($finalArr);echo "</pre>";
$dataArr=数组(数组(14,14,25,25,38128)、数组(33,55,44,55,22332));
$replaceArr=数组(数组(146146)、数组(333666));
$finalArr=array();
foreach($dataArr作为$key=>$data){
数组移位($数据);
$first=重置($replaceArr[$key]);
$end=end($replaceArr[$key]);
$finalArr[$key]=array_merge(array($first),$data,array($end));
}
回声“;打印(最终);回声“;

是否先添加一个元素,再添加另一个元素作为数组的最后一个元素?是否使用了正确的标记?代码看起来像javascript,而不是php。看起来你想用a3和a4中的数字来结束数组,这是你的“比较”吗?我想更新a1中的元素,同时比较元素的成本,也就是a2中的元素,就像a1中的第一个元素是14,a2数组中的成本是33现在a3中的元素是146,成本是333,现在比较是14和146,这两个位是公共的,这些组合的成本也是公共的,比如33和333,所以我想将14和33更新为146和333,因为它正在更新第一个元素,但是当我将数组更改为a1[]={14,14,25,25,38128}a2[]={33,55,44,55,22332}和a3[]={146256}a4[]={333555}结果应该是a1[]={146,14,25256,38128}和a2[]={333,55,44555,22332}您的要求不明确。在您的问题中,输入包含6个元素,输出7个元素。在你的评论中,它是不同的。请清楚地解释您的要求。您看到a1和a3中的第一个元素是14和146,a2和a4中的成本是33和333。现在a1和a3的前两位是匹配的,同时a2和a4也是匹配的,即14-33/146-333。14更新为146,33更新为333,以及我前面提到的注释a3中包含元素146和256,其成本为333和555,a1和a2中现在有14-33和25-55的组合与a3和a4匹配,必须在a1和a2中更新这些元素,并添加新元素(应更新匹配元素并添加新元素)