1. php判斷多維數組值的大小
$arr = [
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5, 6, 7, 8],
[1, 2, 3, 4, 5, 6, 7]
];
echo count($arr); // 3 二維數組長度
echo count($arr[0]);// 5 二維數組子數組長度
echo count($arr[1]);// 8 二維數組子數組長度
你可以去後盾人平台看看,裡面的東西不錯
2. PHP獲取二維數組中相同的元素
$a = array(array('id' => '10'),array('id' => '2'),array('id' => '10'),array('id' => '3'),array('id' => '2'));
$ids = array();
foreach($a as $k=>$v)
{
foreach($v as $value)
{
if(!in_array($value,$ids))
$ids[] = $value;
}
}
foreach($a as $k=>$v)
{
foreach($v as $value)
{
foreach($ids as $key=>$id)
{
if($id == $value)
{
$res[$key]['id'] = $id;
$res[$key]['num']++;
}
}
}
}
print_r($ids);
print_r($res);
Array
(
[0] => 10
[1] => 2
[2] => 3
)
Array
(
[0] => Array
(
[id] => 10
[num] => 2
)
[1] => Array
(
[id] => 2
[num] => 2
)
[2] => Array
(
[id] => 3
[num] => 1
)
)
3. php 兩個二維數組比較,從第一個二維數組中,將第二個二維數組不同項挑選出來,最終合並成為一個新的數組
方法是使用array_udiff函數。代碼如下:
function diff_arr($a, $b){
return $a["id"] > $b["id"] ? 1 : ($a["id"] < $b["id"] ? -1 : 0);
}
print_r(array_udiff($arr0, $arr1, "diff_arr"));
4. php 怎麼隨機抽取二維數組里的幾個數組
//你的數組少寫了個逗號
$data=array(
array(
"price"=>"6874","air"=>"國泰"
),
array(
"price"=>"4726","air"=>"大韓航空"
),
array(
"price"=>"6569","air"=>"國泰航空"
),
array(
"price"=>"6569","air"=>"卡達航空"
),
array(
"price"=>"3380","air"=>"美國航空"
),
array(
"price"=>"4200","air"=>"泰國航空"
)
);
//隨機選擇出兩個元素
$temp=array_rand($data,2);
//重組數組
foreach($tempas$val){
$data_last[]=$data[$val];
}
print_R($data_last);
5. php 根據某個欄位對二維數組這個數組排序
試編寫代碼如下:
<?php
$array[] = array('id'=>1,'price'=>50);
$array[] = array('id'=>2,'price'=>70);
$array[] = array('id'=>3,'price'=>30);
$array[] = array('id'=>4,'price'=>20);
foreach ($array as $key=>$value){
$id[$key] = $value['id'];
$price[$key] = $value['price'];
}
array_multisort($price,SORT_NUMERIC,SORT_DESC,$id,SORT_STRING,SORT_ASC,$array);
echo '<pre>';
print_r($array);
echo '</pre>';
?>
運行結果:
Array
(
[0] => Array
(
[id] => 2
[price] => 70
)
[1] => Array
(
[id] => 1
[price] => 50
)
[2] => Array
(
[id] => 3
[price] => 30
)
[3] => Array
(
[id] => 4
[price] => 20
)
)
6. php 2個二維數組 如何判斷差集
<?php
$a=[
["sbnumber"=>"0513-0001-00001","name"=>"心安苑"],
["sbnumber"=>"0513-0001-00002","name"=>"中正苑"],
["sbnumber"=>"0513-0001-00003","name"=>"務實苑"],
["sbnumber"=>"0513-0001-00004","name"=>"服務苑"],
["sbnumber"=>"0513-0001-00005","name"=>"張三"]
];
$b=[
["sbnumber"=>"0513-0001-00001","name"=>"心安苑"],
["sbnumber"=>"0513-0001-00002","name"=>"中正苑"],
["sbnumber"=>"0513-0001-00003","name"=>"務實苑"],
["sbnumber"=>"0513-0001-00004","name"=>"服務苑"],
["sbnumber"=>"0513-0001-00007","name"=>"李四"]
];
$cmp=function($av,$bv){
$r=strcmp($av['sbnumber'],$bv['sbnumber']);
return$r===0?strcmp($av['name'],$bv['name']):$r;
};
$c=array_values(array_udiff($a,$b,$cmp));
$d=array_udiff($b,$a,$cmp);
foreach($das&$dv)$c[]=$dv;
unset($d);
var_mp($c);
array(2){
[0]=>array(2){["sbnumber"]=>string(15)"0513-0001-00005"["name"]=>string(6)"張三"}
[1]=>array(2){["sbnumber"]=>string(15)"0513-0001-00007"["name"]=>string(6)"李四"}
}
需要比兩次才能互相比出差集,再合並結果。還有這里的記錄間根據各項內容(比如名字)來確定不同,所以用自定義的對內容的比較規則..
7. php判斷二維數組中是否含有某個值
可以使用遍歷二維數組的辦法判斷,還可以統計出現的次數或者輸出key值。代碼如下:
<?php
$d=100;
$tot=0;
$cars=array
(
array("Volvo",100,96),
array("BMW",100,59),
array("Toyota",110,100)
);
foreach($carsas$v)
{
if(is_array($v))
{
foreach($vas$a)
{
if($a==$d)
$tot++;
}
}
else
{
if($v==$d)
$tot++;
}
}
echo($tot);
?>