PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)

本文实例总结了PHP数组用法。分享给大家供大家参考,具体如下:

Demo1.php

<?php

//创建一个数组变量

$userNames = array('张三','李四','王五');

//将这个数组打印出来

// echo $userNames;//Array

// $userName = '张三';

// echo $userName;//张三

//如果你想打印出这个数组的某一个元素

//那你必须找到这个元素的下标,键(key)

//0,1,2

//echo $userNames[2];//王五

//print_r -- 打印关于变量的易于理解的信息。

//print_r($userNames);//Array ( [0] => 张三 [1] => 李四 [2] => 王五 )

//$userNames 是一个数组变量,而 $userNames[x] 可以理解成数组变量下的小变量

$userNames[4] = '赵七';

print_r($userNames);//Array ( [0] => 张三 [1] => 李四 [2] => 王五 [4] => 赵七 )

?>

Demo2.php

<?php

//range -- 建立一个包含指定范围单元的数组

//range 包含指定数组

//包含两种东西,一种叫做键(key),一种叫做值(value)

//key 是自动生成的,默认从 0 开始,每次 +1

//value 是你自己赋值的

//$numbers = range(1,4);

//print_r($numbers); //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

// $letters = range('a','e');

// print_r($letters);//Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )

// echo $letters[3];

?>

Demo3.php

<?php

$userNames = array('张三','李四','王五');

//通过循环来显示数组里的所有值

//从 0-5 之间循环

// for($i=0;$i<3;$i++){

// echo ($i+1).'-->'.$userNames[$i].'<br/>';

// }

/*

* 1-->张三

* 2-->李四

* 3-->王五

* */

// echo count($userNames); //3

// for($i=0;$i<count($userNames);$i++){

// echo ($i+1).'-->'.$userNames[$i].'<br/>';

// }

//如果 key 不是从 0 开始,或者说,压根不是数字,那么就无法用无精打采循环来实现显示数据列表

//通过 foreach 循环来遍历数组,这方式好处,不需要去考虑 key

// foreach ($userNames as $value){

// echo $value.'<br/>';

// }

//foreach 遍历 $key => $value

// foreach ($userNames as $keyaaa => $value){

// echo $keyaaa.'-->'.$value.'<br/>';

// }

/**

* 0-->张三

* 1-->李四

* 2-->王五

* */

//所以,你要先做个判断

if(is_array($userNames)){

foreach ($userNames as $key => $value){

echo $key.'-->'.$value.'<br/>';

}

}else{

echo $userNames;

}

?>

Demo4.php

<?php

$userNames = array('张三','李四','王五');

print_r($userNames);

echo $userNames[0];

?>

Demo5.php

<?php

//创建自定义键(key)的数组

//如果你不去声明元素的 key ,那么从开始 0 计算

// $userNames = array('baidu'=>'张三','李四','王五');

// print_r($userNames); //Array ( [baidu] => 张三 [0] => 李四 [1] => 王五 )

$userNames = array('baidu'=>'张三','taobao'=>'李四','360'=>'王五');

print_r($userNames); //Array ( [baidu] => 张三 [taobao] => 李四 [360] => 王五 )

echo $userNames['baidu'];

?>

Demo6.php

<?php

//先创建只一个元素的数组

$userAge = array('chaoyv'=>25);

//打印出 chaoyv 的年龄

//echo $userAge['chaoyv']; //25

//将以前的数组,追加两条,这里说的下标,键,key 是一个东西

$userAge['yike'] = 30;

$userAge['wife'] = 24;

print_r($userAge);

?>

Demo7.php

<?php

//array 关键字都可以不要,就能创建数组

$userAges['chaoyv'] = 25;

//print_r($userAges); //Array ( [chaoyv] => 25 )

$userAges['yike'] = 30;

$userAges['wife'] = 24;

//print_r($userAges); //Array ( [chaoyv] => 25 [yike] => 30 [wife] => 24 )

//这里无法使用 for 循环将数据全部显示出来,只能通过 foreach 遍历出来

foreach ($userAges as $value){

echo $value.'<br/>';

}

?>

Demo8.php

<?php

// $userAges['chaoyv'] = 25;

// $userAges['yike'] = 30;

// $userAges['wife'] = 24;

$username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');

//print_r($username);

//each 的使用

//each -- 返回数组中当前的键/值对并将数组指针向前移动一步

//这里有一个指针,默认情况下,指针是指定第一个键值对

//这里的第一个键值对是 '世'=>'何开'

//如果each($username),那么获取的就是第一个键值对 '世'=>'何开'

//each 这个函数返回的是一个数组,

//each 将第一个键值对获取到,然后包装成一个新的数组。

//print_r(each($username));

//相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )

//$a = each($username);

//echo $a[value];

print_r(each($username));

echo '<br/>';

print_r(each($username));

?>

Demo9.php

<?php

$username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');

//这里,我们怎么使用 each 来循环所有的数据呢?

//相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )

//两个感叹号,表示真是存在的数据转换成布尔值

// echo !!each($username);//说明有数据,有数据,用布尔值的理念就是真(true)

// echo !!each($username);

// echo !!each($username);

// echo !!each($username);//第四个是假的

while (!!$a = each($username)){

echo $a['key'].'-->'.$a['value'].'<br/>';

}

// $a = each($username);

// echo $a[0].'---'.$a[1].'<br/>';

// $a = each($username);

// echo $a[0].'---'.$a[1].'<br/>';

// $a = each($username);

// echo $a[0].'---'.$a[1].'<br/>';

// /**

// * 世---何开

// * 血---赵血儿

// * 学---墨学之

// * */

?>

Demo10.php

<?php

// $usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');

// $a = each($usernames);

// //世-->何开

// echo $a['key'];

// echo '-->';

// echo $a['value'];

// $a = each($usernames);

// //血-->赵血儿

// echo $a['key'];

// echo '-->';

// echo $a['value'];

// //list -- 把数组中的值赋给一些变量

// $a = array('aaa','bbb','ccc','ddd');

//// print_r($a);//Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )

// list($var1,$var2,$var3,$var4) = $a;

// echo $var4;

// $usernames = array(0=>'何开','血'=>'赵血儿','学'=>'墨学之');

// //list 只能认识 key 为数字的

// //自定义的字符串 key 是无法使用 list 来识别的

// list($a,$b,$c) = $usernames;

// echo $a;//何开

$usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');

//相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )

list($name,$username) = each($usernames);

echo $username;

?>

Demo11.php

<?php

$usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');

$a =each($usernames);

echo $a[key];

$a =each($usernames);

echo $a[key];

//第三次,我想取数组的第一条数组

//只要将数组的指针调整到第一个位置即可

//reset -- 将数组的内部指针指向第一个单元

reset($usernames);

$a = each($usernames);

echo $a[key];

//世血世

?>

Demo12.php

<?php

// $usernames = array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');

// print_r($usernames);

// echo '<br/>';

// //array_unique -- 移除数组中重复的值

// //创建了一个新数组,而新数组呢,已经移除掉了,旧的数组原封不动

// $a = array_unique($usernames);

// print_r($a);

$numbers = array(1,24,2,1,3,4,2,6,4,2,4,56,2,4,5);

print_r($numbers);

$newNumbers = array_unique($numbers);

print_r($newNumbers);

?>

Demo13.php

<?php

$usernames = array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');

print_r($usernames);

echo '<br/>';

//array_flip -- 交换数组中的键和值

$newUsernames = array_flip($usernames);

print_r($newUsernames);

/**

* Array ( [世] => 何开 [境] => 何开 [血] => 赵血儿 [学] => 墨学之 )

* Array ( [何开] => 境 [赵血儿] => 血 [墨学之] => 学 )

* */

?>

Demo14.php

<?php

//创建一个单一的数组

$products = array(

array('苹果','6','28.8'),

array('猪肉','2','18.8'),

array('饼干','4','48.8')

);

//print_r($products);

//将 $products 第一条元素取出来

//print_r($products[2]);

//数组里的数组

echo "|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|<br />";

echo "|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|<br />";

echo "|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|<br />";

?>

Demo15.php

<?php

//创建一个单一的数组

$products = array(

array('苹果','6','28.8'),

array('猪肉','2','18.8'),

array('饼干','4','48.8')

);

//首先要求出外面数组的长度

//echo count($products);

for($i=0; $i<count($products);$i++){

for($j=0;$j<count($products[$i]);$j++){

echo '|'.$products[$i][$j];

}

echo "|<br/>";

}

/*

* |苹果|6|28.8|

* |猪肉|2|18.8|

* |饼干|4|48.8|

* **/

?>

Demo16.php

<?php

//创建一个单一的数组

$products = array(

array('产品'=>'苹果','数量'=>'6','价格'=>'28.8'),

array('产品'=>'猪肉','数量'=>'3','价格'=>'25.8'),

array('产品'=>'饼干','数量'=>'2','价格'=>'26.8')

);

//print_r($products) ;

// for($i=0;$i<count($products);$i++){

// foreach ($products[$i] as $key => $value){

// echo $key.'--'.$value.'|';

// }

// echo '<br/>';

// }

for($i=0;$i<count($products);$i++){

while (!!list($key,$value)=each($products[$i])){

echo $key.'--'.$value.'|';

}

echo '<br/>';

}

/**

* 产品--苹果|数量--6|价格--28.8|

* 产品--猪肉|数量--3|价格--25.8|

* 产品--饼干|数量--2|价格--26.8|

* */

?>

Demo17.php

<?php

// //sort -- 对数组排序

// $fruit = array('banner','orange','apple');

// //没有排序前,一般是按照 key 的顺序进行显示

// //print_r($fruit);

// //排序之后

// sort($fruit);

// print_r($fruit);

$numbers = array(45,44,27,574,241,7,45,1,5,2,4,5);

print_r($numbers);

rsort($numbers);

echo '<br/>';

print_r($numbers);

//按照数字的话,要看整体的数字的大小,按照字符串的话,只看第一位大小

// $numbers = array(2,12,3);

// sort($numbers,SORT_NUMERIC);

// print_r($numbers);Array ( [0] => 2 [1] => 3 [2] => 12 )

// $numbers = array(2,12,3);

// sort($numbers,SORT_STRING);

// print_r($numbers);//Array ( [0] => 12 [1] => 2 [2] => 3 )

?>

Demo18.php

<?php

//asort -- 对数组进行排序并保持索引关系

$fruit = array('banner','orange','apple');

// sort($fruit);

// print_r($fruit);

//Array ( [0] => apple [1] => banner [2] => orange )

asort($fruit);

print_r($fruit);

//Array ( [2] => apple [0] => banner [1] => orange )

?>

Demo19.php

<?php

$fruit = array('b'=>'banner','o'=>'orange','a'=>'apple');

//ksort -- 对数组按照键名排序

ksort($fruit) ;

print_r($fruit);

//Array ( [a] => apple [b] => banner [o] => orange )

?>

Demo20.php

<?php

//echo '<img src="images/mm1.jpg" />';

//创建一个数组

$pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');

//数组进行随机打乱

//shuffle($pic);

//多数组进行反向排序,array 打头的函数,一般会创建一个新数组

$a = array_reverse($pic);

for($i=0;$i<3;$i++){

echo '<img src="images/'.$a[$i].'" style="margin:10px;" />';

echo "\n";

}

?>

Demo21.php

<?php

$userName = array('张三');

print_r($userName);

//这个函数的返回值将得到 ,目前数组的元素个数

//array_unshift -- 在数组开头插入一个或多个单元

//在开头插入数据

array_unshift($userName,'李四') ;

//在结尾插入数据

array_push($userName,'吴者然');

//删除开头的元素

array_shift($userName);

//删除结尾的元素

array_pop($userName);

print_r($userName);

?>

Demo22.php

<?php

$fruit = array('banner','orange','apple');

//这个函数用来获取一个数组中的键(key)

//第二个参数表明随即获取几个

// $a = array_rand($fruit,1);

// echo $fruit[$a];

$a = array_rand($fruit,2);

echo $fruit[$a[0]].' '.$fruit[$a[1]];

?>

Demo23.php

<?php

$username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');

//默认情况下,指针在第一条数据

//获取指针的当前元素,current 并没有将指针移到下一步

// echo current($username);

// echo current($username);

// echo current($username);

// echo next($username);

// echo current($username);

// echo next($username);

// echo current($username);

// //reset -- 将数组的内部指针指向第一个单元

// echo reset($username);

// echo sizeof($username);//count

$numbers = array(1,4,5,656,7,5,7,4,7,4,5,7);

//array_count_values -- 统计数组中所有的值出现的次数

print_r(array_count_values($numbers));

?>

Demo24.php

<?php

$a=$b=$c='';

$fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');

//通过标量函数将字符串键(key)设置成变量,然后将值赋给了这个变量

extract($fruits);

echo $a;

echo $c;

echo $b;

//appleorangebanner

?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

以上是 PHP入门教程之数组用法汇总(创建,删除,遍历,排序等) 的全部内容, 来源链接: utcz.com/z/320279.html

回到顶部