2015-12-15 67 views
0

我试图通过将数组中的元素与即将到来的元素进行比较来获取更新。通过与新插入的元素进行比较来更新数组

一个这样的例子就像是让我们四个阵列

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} 
+0

是否想要首先添加一个元素而另一个作为数组的最后一个元素? –

+0

你使用了正确的标签吗?代码看起来像JavaScript,而不是PHP。 –

+0

它看起来像你想用a3和a4中的数字来标记数组,是你的“比较”吗? – sijpkes

回答

0

希望你想删除第一个元素并需要添加另一个数组的第一个和最后一个。为了便于我在这里使用单个数组作为输入

$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>"; 
+0

谢谢它正在更新第一个元素,但当我改变数组as a1 [] = {14,14,25,25,38,128} a2 [] = {33,55,44,55,22,332} and a3 [] = {146,256} a4 [] = {333,555}结果应该是a1 [] = {146,14,25,256,38,128}和a2 [] = {333,55,44,555,22,332} –

+0

您的要求并不清楚。在您的问题输入中包含6个元素并且输出7.并且在您的评论他们有区别。请解释清楚你的要求 –

+0

你看到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中更新,新元素将被添加(匹配元素应该被更新并且新元素应该被添加) –