『壹』 php兩個數組相加,依據數組中某一個元素的值,如果相同,就加入該列中,怎麼寫
//暫時認為你的第一個數組為$a,第二個數組為$b,利用PHP的foreach循環可以實現類似功能
<?php
//首先計算哪個數組元素少,最大限度節省運算量
$ca = count($a);
$cb = count($b);
//第二個數組元素少
if ($a>=$b) {
$arr = &$a;
$typeid = $b;
//第一個數組元素少
} else {
$arr = &$b;
$typeid = $a;
}
//取得要比較的typeid數組和葯賦值的title數組
$tid = array();
$title = array();
foreach ($typeid as $k => $v){
$tid[] = $v['type_id'];
$title[] = $v['title'];
}
//開始指向相加計算
foreach ($arr as $k => $v){
if (in_array($arr[$k]['type_id'], $tid)) {
$arr[$k]['title'] = $title[k];
}
}
?>
『貳』 uniqueidphp下判斷數組中是否存在相同的值array_unique
array_unique() 函數在PHP中用於去除數組中的重復值,確保返回的新數組中不包含任何重復的元素。此函數保留數組中元素的鍵名不變,但在內部對值進行排序,僅保留首次遇到的鍵名。如果數組中的兩個元素在字元串比較下相同,那麼第一個元素將被保留。
考慮以下實例:如果數組包含 "a" => "green", "red", "b" => "green", "blue", "red",執行array_unique() 後,輸出為:Array([a] =>green[0] =>red[1] =>blue)。注意,"red" 的鍵名被忽略,"green" 的鍵名 "b" 也被忽略,因為它們與已存在的鍵名相同。
下面的代碼展示了如何使用array_unique() 函數並輸出結果:
php
$input = array("a" =>"green", "red", "b" =>"green", "blue", "red");
$result = array_unique($input);
print_r($result);
輸出:Array([a] =>green[0] =>red[1] =>blue)
在另一個例子中,使用整數和字元串,如數組(4, "4", "3", 4, 3, "3"),執行array_unique() 後,輸出為:array(2) {[0] =>int(4)[2] =>string(1) "3"}。這表明4和"4"被視為相同元素,只保留了第一次出現的值。
php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_mp($result);
輸出:array(2) {[0] =>int(4)[2] =>string(1) "3"}
通過以上示例,我們可以看出array_unique() 在去除數組中重復值時的使用方法及功能。該函數在處理集合數據時非常有用,特別是在需要確保數組元素唯一性的情況下。
『叄』 PHP如何獲取數組中是否存在某個值還有是否相同
您好,很高興為你作答。
問題是有2個,按照規范化程序的設計原則,可以編寫2個函數。由於這是一個二維數組,因為我們需要用到遍歷和數組訪問的知識。
針對第一個問題,判斷所有的num值是否相同,也就是要一個結果:true or false。true代表是全部相同的,而false則反之。所以我們可以寫出這樣一個函數:
/**
*檢測數組的num值是否全部相等
*@param$arrmixed待檢測的數組
*@returnbooltrueorfalse
*/
functionNumIsEqual($arr){
$length=count($arr);
$compare=0;
for($i=0;$i<$length;$i++){
if($compare==0){
$compare=$arr[$i]['Num'];
}
if($compare!=$arr[$i]['num']){
returnfalse;
}
}
returntrue;
}
對於第二個問題,檢測所有的display是否有0存在,同第一個問題一樣,也是相同的處理方式,只不過判斷邏輯稍有不同。大致如下:
/**
*檢測數組的display是否有0存在
*@param$arrmixed待檢測的數組
*@returnbooltrueorfalse
*/
functionNumIsEqual($arr){
$length=count($arr);
for($i=0;$i<$length;$i++){
if($arr[$i]['display']==0){
returntrue;
}
}
returnfalse;
}
『肆』 PHP計算二維數組中一維數組相同鍵名的,鍵值相加
$arr=array();
foreach($testas$v){
if(isset($arr[key($v)])){
$arr[key($v)]+=current($v);
}else{
$arr[key($v)]=current($v);
}
}
print_r($arr);
結果如圖: