php数组函数_遍历数组_删除数组健值_数组运算符

作者: 鲁智深 分类: PHP 发布时间: 2015-01-05 13:46

数组函数

1、bool is_array($val);

判断变量val是否为数组,是返回true,不是false

1
2
3
     echo "<br/>---------判断变量val是否为数组----------<br/>";
     $arr = array(a,b,c);
     var_dump(is_array($arr));

2、bool sort($array);

1、对数组里面的值进行排序(小到大)

2、返回值是bool

3、排序后的数组全部成为索引数组(下标从0开始)

1
2
3
4
     echo "<br/>---------数组值排序 小到大----------<br/>";
     $arr = array('name'=>9,1,3,1,-1,0,6);
     var_dump(sort($arr));
     var_dump($arr);

3、bool asort($array);

1、对数组里面的值进行排序(小到大)

2、保留数组类型(下标保留)

1
2
3
4
     echo "<br/>---------数组值排序 小到大 下标保留----------<br/>";
     $arr = array('name'=>9,'age'=>1,3,1,-1,0,6);
     var_dump(asort($arr));
     var_dump($arr);

4、bool rsort($array);

1、对数组里面的值进行排序(大到小)

2、排序后的数组全部成为索引数组(下标从0开始)

1
2
3
4
     echo "<br/>---------数组值排序 大到小----------<br/>";
     $arr = array('name'=>9,'age'=>1,3,1,-1,0,6);
     var_dump(rsort($arr));
     var_dump($arr);

5、bool arsort($array);

1、对数组里面的值进行排序(大到小)

2、保留数组类型(下标保留)

1
2
3
4
     echo "<br/>---------数组值排序 大到小 下标保留----------<br/>";
     $arr = array('name'=>9,'age'=>1,3,1,-1,0,6);
     var_dump(arsort($arr));
     var_dump($arr);

6、bool ksort($array);

1、数组里面的键排序(小到大)

2、值不变

1
2
3
4
     echo "<br/>---------数组键排序 小到大----------<br/>";
     $arr = array('5'=>9,'7'=>1,3,1,-1,0,6);
     var_dump(ksort($arr));
     var_dump($arr);

7、bool krsort($array);

1、数组里面的键排序(大到小)

2、值不变

1
2
3
4
     echo "<br/>---------数组键排序 大到小----------<br/>";
     $arr = array('5'=>9,'7'=>1,3,1,-1,0,6);
     var_dump(krsort($arr));
     var_dump($arr);

8、int count($array);

计算数组中的有几个键值对,也可以说数组长度

1
2
3
     echo "<br/>---------数组的长度----------<br/>";
     $arr = array(1,3,54,65);
     var_dump(count($arr));

9、bool in_array($val,$array);

判断某个值是否在数组里面

1
2
3
     echo "<br/>---------判断某个值是否在数组里面----------<br/>";
     $arr = array(1,3,54,65);
     var_dump(in_array(2,$arr));

10、bool array_key_exists($key,$array);

判断某个键是否在数组里面

1
2
3
     echo "<br/>---------判断某个键是否在数组里面----------<br/>";
     $arr = array('name'=>1,3,54,65);
     var_dump(array_key_exists("name",$arr));

11、bool isset($val);

判断$变量是否被设置,值是null返回false

1
2
3
     echo "<br/>---------判断val是否被设置----------<br/>";
     $arr = array('name'=>1,3,54,65);
     var_dump(isset($arr));

12、array array_reverser($array);

翻转数组,索引数组翻转后键值从0开始;关联数组翻转后键值对不变

1
2
3
     echo "<br/>---------翻转数组----------<br/>";
     $arr = array('name'=>1,3,54,65);
     var_dump(array_reverse($arr));

13、array array_merge($arr1,$arr2,$arr3);

关联数组,合并后键值不变

索引数组,键值从0开始重新分配

如果下标有重复,会被后面的覆盖

1
2
3
4
5
     echo "<br/>--------数组合并----------<br/>";
     $arr1 = array("name"=>18,2,4,5,3);
     $arr2 = array(1,2,4,5,3);
     $res = array_merge($arr1,$arr2);
     var_dump($res);

14、array array_keys();

把数组里面的所有键值,组成新数组

1
2
3
     echo "<br/>--------获取下标组成数组----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>18);
     var_dump(array_keys($arr1));

15、array array_values();

把数组里面的所有值,组成新数组

1
2
3
     echo "<br/>--------获取值组成数组----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>18);
     var_dump(array_values($arr1));

16、int array_push($arr,$val1,$val2,…..);

从数组尾部给数组追加值,val可以多个

1
2
3
4
     echo "<br/>--------尾部开始追加----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>18);
     $res = array_push($arr1,"100");
     var_dump($arr1);

17、int array_unsheift($arr,$val1,$val2,…….);

从数组头部追加,val可以多个

1
2
3
4
     echo "<br/>--------头部开始追加----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>18);
     $res = array_unshift($arr1,"100");
     var_dump($arr1);

18、mix array_pop($arr);

删除数组最后一个元素,返回被删除的哪个元素的值

1
2
3
4
     echo "<br/>--------尾部开始删除----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name");
     $res1 = array_pop($arr1);
     var_dump($arr1);

19、mix array_shift($arr);

删除数组头一个元素,返回被删除的哪个元素的值

1
2
3
4
     echo "<br/>--------头部开始删除----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name");
     $res1 = array_shift($arr1);
     var_dump($arr1);

20、unset($val);

删除变量,释放内存资源,没有返回值

1
2
3
4
     echo "<br/>--------删除变量,释放内存资源----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name");
     unset($arr1);//unset($arr1['sex'])
     var_dump($arr1);

21、mix end($arr);

使数组指针指向最后,并返回最后值

1
2
3
4
     echo "<br/>--------使数组指针指向最后,并返回最后值----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name");
     $res = end($arr1);
     var_dump($res);

22、mix next($arr);

使数组指针往右移(后)一位,返回当前所在元素的值

1
2
3
4
     echo "<br/>--------使数组指针往右移(后)一位,返回当前所在元素的值----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name");
     $res = next($arr1);
     var_dump($res);

23、mix prev($arr);

使数组指针往左移(前)一位,返回当前所在元素的值

24、mix reset($arr);

使数组指针指向头部(最前),返回当前所在元素的值

25、mix current($arr);

返回数组指针当前所在位置的元素值

26、list($val1,$val2,….);

以此数组值依次赋值给变量,不能用于关联数组

1
2
3
4
     echo "<br/>--------以此数组值赋值给变量----------<br/>";
     $arr1 = array("nv","张三","name");
     list($a,$b,$c) = $arr1;
     var_dump($a);

27、shuffle($arr);

将速,原下标不保留,重新生成索引数组

1
2
3
4
     echo "<br/>--------数组中的值随机排序----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name");
     $res = shuffle($arr1);
     var_dump($arr1);

28、array array_unique($arr);

去除数组中重复的值,返回去重后的新数组

1
2
3
4
     echo "<br/>--------去重----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name","age1"=>"name");
     $res = array_unique($arr1);
     var_dump($res);

29、array array_rand($arr [,$num]);

从数组中随机取$num个元素的键值,$num默认是1,$num大于1返回数组

1
2
3
4
     echo "<br/>--------随机取 \$num 个元素的键值----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name");
     $res = array_rand($arr1,2);
     var_dump($res);

30、array_splice($arr,$start [,$lenght]);

截取数组中的元素从$statt开始截取lenght长度(截取几个意思),如果是关联数组,键值不变,索引数组下标从0开始

1
2
3
4
     echo "<br/>--------切割数组----------<br/>";
     $arr1 = array("sex"=>"nv","name"=>"张三","age"=>"name","age1"=>"name");
     $res = array_splice($arr1,2,1);
     var_dump($res);

31、array_diff(array1,array2,array3…);

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。在返回的数组中,键名保持不变。

1
2
3
        //应用于使用PHP函数scandir排除特定目录如.和..
        $directory='/path/to/my/directory';
        $scanned_directory=array_diff(scandir($directory),array('..','.'));

遍历一组数组

请用foreach和普通的for循环来遍历下面的数组:

$colors =array(‘red’,’bule’,’green’,’yellow’);

whlie循环

1
2
3
4
5
$i=0;//循环控制变量
while($i<count($colors)){
      echo "<br/>".$colors[$i];
      $i++;
}

for循环

1
2
3
for($i=0;$i<count($colors);$i++){
    echo "<br/>".$colors[$i];
}

do…whlie循环

1
2
3
4
5
$i=0;//循环控制变量
do{
   echo "<br/>".$colors[$i];
   $i++;
}while($i<count($colors));

foreach循环

1
2
3
foreach($colors as $k=>$v){
       echo "<br/>$k=$v";
}

如果使用for while do…while要确定该数组的下标从0开始顺序排放。

删除数组的某个健-值对

unset()函数允许删除数组中的某个下标,也可以销毁某个变量,销毁该元素后不会重新建立组合。

案例

1
2
3
4
5
6
7
$arr[0]=123;
$arr[1]=456;
$arr[2]="hello";
//比如现在我要删除$arr[1]元素
unset($arr[1]);
//那删除后会不会重新建立组合
echo print_r($arr);

数组运算符

例子 名称 结果
$a + $b 联合 $a$b 的联合。
$a == $b 相等 如果 $a$b 具有相同的键/值对则为 TRUE
$a === $b 全等 如果 $a$b 具有相同的键/值对并且顺序和类型都相同则为 TRUE
$a != $b 不等 如果 $a 不等于 $b 则为 TRUE
$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE
$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE

案例

1
2
3
4
5
6
7
8
9
$a=array("a"=>"apple","b"=>"banana");
$b=array("a"=>"pear","b"=>"strawberry","e"=>"cherry");
$c=$a+$b;//$b数组的下标和值到$a
echo"\$a+\$b result<br/>";
var_dump($c);//输出"a"=>"apple","b"=>"banana","e"=>"cherry"
echo "<br/>";
$c=$b+$a;
echo "\$b+\$a result <br/>";
var_dump($c);//输出"a"=>"pear","b"=>"strawberry","e"=>"cherry"

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注