Day 10 : PHP - 常用的阵列函数有哪些?

上篇介绍了PHP的阵列宣告、印出方式,这篇想和大家介绍PHP常用的阵列函数有哪些

1. in_array
如果想检查此value是否存在於阵列中,可使用in_array,语法为in_array(要检查的value , 要被检查的阵列)

让我们看以下范例

PHP:

$selfKey = array("Tom"=>"60", "Amy"=>"50", "Eason"=>"65", "Joker"=>"100");
$check_value = 100;
echo "检查value是否存在於阵列中:<br>";

//in_array(要检查的value, 要被检查的阵列);
if (in_array($check_value, $selfKey)) {
    echo "查到value值".$check_value;
} else {
    echo "查无".$check_value."这个value值";
}

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088wJ7vlY1mZo.png


2. array_key_exists
如果想检查此key是否存在於阵列中,可使用array_key_exists,语法为array_key_exists (要检查的key , 要被检查的阵列)

让我们看以下范例

PHP:

$check_key = "Eason";
echo "检查key值是否存在於阵列中:<br>";

//array_key_exists(要检查的key, 要被检查的阵列);
if (array_key_exists($check_key, $selfKey)) {
    echo "查到key值".$check_key;
} else {
    echo "查无".$check_key."这个key值";
}

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088FgiZfjycsm.png


3. array_combine
如果想结合两个阵列,可使用array_combine形成一个新的阵列,语法为array_combine (欲做为key的阵列 , 欲做为value的阵列)
但请注意,两者阵列元素数量必须相同!

让我们看以下范例

PHP:

$name = array("Tom", "Amy", "Eason", "Joker");
$weight = array("60", "50", "65", "100");

echo "结合2个阵列(注意:阵列元素数量必须相同)<br>";
echo "将name和weight合并後的combine阵列为:<br>";

//array_combine(欲做为key的阵列, 欲做为value的阵列);
$combine = array_combine($name, $weight);
print_r($combine);

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088FftZy0DxjX.png


4. 阵列聚合(+)
阵列聚合和array_combine名字很相似,但完全不一样喔!!
阵列聚合是用运算子的,所以「+的後者」会接在「+的前者」後面,形成一个新的阵列,你可以选择再宣告一个变数储存,也可以直接用print_r印出

让我们看以下范例

PHP:

$array_1 = array("10" => "ten", "20" => "twenty");
$array_2 = array("100" => "one hundred", "200" => "two hundred", "300" => "three hundred");
echo "阵列聚合范例:<br>";

$array_50 = $array_1 + $array_2;
$array_60 = $array_2 + $array_1;

echo "阵列1(2笔)+阵列2(3笔):<br>";
print_r($array_50);
echo "<br><br>";

echo "阵列2(3笔)+阵列1(2笔):<br>";
print_r($array_2 + $array_1);

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/2014108866Y8G02oJQ.png


5. 阵列比对(==、===)
如果你想比对两个阵列「key对应到的value」是否相同,可以用==去比对,若相同则回传true,不同则回传false
如果你想相同,且顺序一样,则可以用===去比对

让我们看以下范例

PHP:

$array_20 = array("one thousend", "two thousend");
$array_30 = array(1 => "two thousend", 0 => "one thousend");
echo "阵列比对范例:<br>";

//$a == $b 如果两个阵列有相同的key和value,则回传true,否则回传false
//$a === $b 同上,但多了一个=,代表需要顺序相同,且型态也相同,才会回传true
var_dump($array_20 == $array_30);
echo "<br><br>";

var_dump($array_20 === $array_30);
echo "<br><br>";

$array_40 = ($array_20 == $array_30);
var_dump($array_40);

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088WNuyM9c2PG.png


6. array_search
如果想搜寻此value是否在阵列里,可使用array_search,语法为array_search (要搜寻的value, 要被搜寻的阵列)
若搜寻成功会回传key值,否则会回传false

让我们看以下范例

PHP:

$array_70 = array("70" => "seventy", "80" => "eighty", "90" => "ninety");
echo "阵列搜寻范例:<br>";

//array_search(要搜寻的value值, 要被搜寻的阵列);
//搜寻成功回传key值,否则回传false
$searchKey = array_search("ninety", $array_70);
echo "搜寻到的key值为".$searchKey;

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088wdetXmYJLM.png


7. isset
若想检查此变数有无设置,可使用isset($变数)

让我们看以下范例

PHP:

$array_10 = array("10" => "ten", "20" => "twenty", "30" => "thirty");
$isset_Key = "20";
echo "用isset()检查值有无设置:<br>";
if (isset($array_10[$isset_Key])) {
    echo $isset_Key."的value值为".$array_10[$isset_Key];
} else {
    echo "查无此人资料";
}

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088wWqp5LAOrB.png


8. empty
若想检查此变数是否为空值,可使用empty($变数)
0空字串(“ ”)null…等都皆为空值

让我们看以下范例

PHP:

$array_100 = array("100" => "", "200" => "two hundred", "300" => "three hundred");
$empty_Key = "100";
echo "用empty判断是否有值:<br>";
if(empty($array_100[$empty_Key])) {
    echo "查无资料";
} else {
    echo $empty_Key."的value值为".$array_100[$empty_Key];
}

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088MTbch0qZHJ.png


9. array_intersect
若你想取两个阵列的value「交集」,可使用array_intersect,语法为array_intersect(要检查的阵列 , 要被比对的阵列)
因为是比对value,所以「key值不一样」也会被视为交集

让我们看以下范例

PHP:

$array_400 = array("400" => "four hundred", "500" => "five hundred", "600" => "six hundred", "700" => "seven hundred");
$array_700 = array("700" => "seven hundred", "800" => "four hundred", "900" => "nine hundred");

//array_intersect(要检查的阵列, 要被比对的阵列);
$result_inrersect_1 = array_intersect($array_400, $array_700);
$result_inrersect_2 = array_intersect($array_700, $array_400);

echo "阵列交集范例<br>";
print_r($result_inrersect_1);
echo "<br><br>";
print_r($result_inrersect_2);
echo "<br><br>";

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088a0e0AcBo9v.png


10. array_diff
如果你想取两个阵列的value「差集」,可使用array_diff,语法为array_diff(要检查的阵列 , 要被比对的阵列)
这里我们用上面9. array_intersect$array_400$array_700做示范

让我们看以下范例

PHP:

//array_diff(要检查的阵列, 要被比对的阵列);
$result_diff_1 = array_diff($array_400, $array_700);
$result_diff_2 = array_diff($array_700, $array_400);

echo "阵列差集范例<br>";
print_r($result_diff_1);
echo "<br><br>";
print_r($result_diff_2);
echo "<br><br>";

结果如下图所示:
https://ithelp.ithome.com.tw/upload/images/20210924/20141088DnLdreW3pf.png


以上就是常用的阵列函数语法
希望大家看完能更加了解


<<:  [Java Day13] 4.1. 类别、物件与属性

>>:  [Day24] CH11:刘姥姥逛物件导向的世界——抽象、介面

前端工程学习日记第5天

#使用 CSS 变更 HTML 标签特性 #补充教材:不想算盒模型的推挤?试试 CSS3 box-s...

30天学习笔记 -day 27-Motion Editor(下篇)

昨天制作了按钮由下往上的动画,今天要加上变化,让昨天的动画看起来不那麽单调。 加入< KeyF...

Makefile

如果读者经常泡在 GitHub 上浏览他人的 C 语言专案,应该很常会看到名为 Makefile 的...

第18车厢-动ㄘ动ㄘ!tab页签切换+轮播应用篇

本篇介绍透过bootstrap4直接使用tab切换功能,并且实作tab切换自动循环播放 我们在昨篇...

[用 Python 解 LeetCode] (003) 80. Remove Duplicates from Sorted Array II

题干懒人包 给定一个排列好的列表,将它整理成重复项最多出现两次,比方说以下 [1,1,1,2,2,3...