php取出tzm,【PHP】函数、递归及其他知识学习笔记

数组定义方式

变量类型的一种,是一个复合型的数据

$arrayName = array('name'/*键*/ => 'tzm'/*值*/, 'age'=> 23);//字符串需要用引号包裹,数字不需要

//可以有多个键值对:name=>tzm  age=>23 xxx=>xxx   ......

//打印数组

print_r($arrayName);

echo '
';

//获取数组中的某一个单元

echo $arrayName['age'];

数组类型

数组的分类:

索引数组; 关联数组; 二维数组; 多维数组

$suoyin = array(0 => 'a中文会怎样', 1 => 'b没问题', 2 => 'c');//索引/枚举/数字 数组

print_r($suoyin);

echo('
');

$guanlian = array('name1' => 'tzm', 'name2' => 'wjn', 'age' => '21');//关联数组

print_r($guanlian);

echo('
');

$erwei = array('name' => 'tzm', 'age' => '21', 'hobby' => array('cs', 'english', 'sport', 'guitar', 'photography'));//二维数组

print_r($erwei);

echo('
');

$duowei = array('name' => 'tzm', 'age' => '21', 'hobby' => array('cs' => array('php', 'python', 'css3', 'html5', 'java'), 'english', 'sport', 'guitar', 'photography'));//多维数组

print_r($duowei);

//查看页面源代码,更直观能感受到他们的区别

数组键规则

//如果没有声明键名,自动声明索引数组

$array1 = array('a', 'b', 'c', 'd');

print_r($array1);

echo '
';

//有的分配了键名,有的没有分配,最后也是自动声明了

$array2 = array('name' => 'tzm', 'a', 'age' => '23', 1);

print_r($array2);

echo '
';

//键分配重复了

//$array3 = array('name' => 'tzm', 'a', 1 => '二十三', 1);

$array3 = array('name' => 'tzm', 'a', 5 => '二十三', 1);

print_r($array3);

echo '
';

/*数组的键只有两种:整型和字符串型

健为浮点型,字符串型的整数,和null

健为浮点数->向下取整

如果字符串恰好理解为一个整数,也转为整数

null按空字符串来理解*/

$array4 = array(2=>'东',2.5=>'南','2.5'=>'西','2'=>'北',null=>'中');

print_r($array4);

操作数组单元

//增删改查

$duowei = array('name' => 'tzm', 'age' => '21', 'hobby' => array('cs' => array('php', 'python', 'css3', 'html5', 'java'), 'english', 'sport', 'guitar', 'photography'));//多维数组

//查

echo $duowei['name'],'
';

echo $duowei['hobby'][1],'
';

echo $duowei['hobby']['cs'][1],'
';

//改

$duowei['age'] = 18;

print_r($duowei);

echo '
';

//删

unset ($duowei['hobby'][2]);//注意,这里我看了一下, 删了以后,其他键值是没有改变的,0还是english,1还是sport,3还是photography

print_r($duowei);

echo '
';

//增

$duowei['gender']='男';

print_r($duowei);

遍历数组

foreach是专门用来循环数组的,速度非常快

foreach 里面的键值的变量名($k,$v) 为任意合法的变量名

array_keys — 返回数组中所有的键名

foreach 没有办法单循环取出健

$a = array('a', 'b', 'c', 'd');//索引数组

/*echo $a[0];

echo $a[1];

echo $a[2];

echo $a[3];*/

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

echo($a[$i]);

}*/

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

echo($a[$key]);

}

echo '
';

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

echo $value;

}

echo '
';

foreach ($a as $value) {

echo $value;

}

echo '
';

print_r(array_keys($a));

echo '
';

$a2 = array('name' => 'tzm', 'age' => 23, 'gender' => '男');

print_r(array_keys($a2));//返回所有的键名

$money = array('q'=>3, 'w'=>4, 'e'=>5, 'r'=>6);

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

//$value = $value*2; 不能这么写

$money[$key] = $value*2;

}

print_r($money);

数组游标操作

数组的游标操作并不是经常使用

但是有利于我们理解数组是怎样循环的

数组内部有一个这样的游标,会指向当前数组的单元

current — 返回数组中的当前单元

next — 将数组中的内部指针向前移动一位

prev — 将数组的内部指针倒回一位

end — 将数组的内部指针指向最后一个单元

reset — 将数组的内部指针指向第一个单元(重置内部游标)

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

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

each();遍历数组

可以读取当前指针指向的单元的 健/值,且以数组形式返回

list();同时给多个变量赋值

each();加list()获取数组的健和值

$a = array('name' => 'tzm', 'age' => 23, 'gender' => '男');

/*next($a);

prev($a);

end($a);

reset($a);

echo current($a),'
';

print_r(each($a));

echo "
";*/

//each();遍历数组,打印数组所有的内容,键跟值

/*while ($bianliang = each($a)) {

print_r($bianliang);

echo('
');

}

$a2 = array('a', 'b', 'c', 'd');

list($q,$w,$e,$r) = $a2;

echo $q, "
";

echo $w, "
";

echo $e, "
";

echo $r, "
";

*/

while ($bianliang22 = each($a)) {

list($key,$value) = $bianliang22;

echo $key,':',$value, '
';

}

数组常用函数

count()

array_key_exists()

in_array()

array_change_key_case();

array_count_values();

array_fill();

array_filter();

array_values()

array_keys()

array_push()

array_pop()

array_shift()

array_unshift()

Sort(),rsort(),Usort(),asort(),

ksort(),natsort(),natcasesort()

array_merge()

array_merge_recursive()

array_diff()

array_diff_assoc()

array_intersect()

array_intersect_assoc()

array_flip();

array_unique()

array_reverse()

array_sum();

shuffle()

range()

array_rand()

count — 计算数组中的单元数目或对象中的属性个数

1)如果不是数组则返回1

2)如果是null则返回0

array_ key_exists — 检查给定的键名或索引是否存在于数组中

判断数组中的键名是否存在(isset)

in_array — 检查数组中是否存在某个值

$a = array('a', 'b', 'c', 'd');

echo count($a),'
';

echo count('whatever'),'
';

echo count(null),'
';

$a2 = array('东', '西', '南', '北');

var_dump(array_key_exists("0", $a2));//true

$a3 = array('东'=>1, '西'=>2, '南'=>3, '北'=>4);

var_dump(array_key_exists("东", $a3));//true

var_dump(in_array(3, $a3));

if (in_array(5, $a3)) {

echo '存在';

}else{

echo '不存在';

}

案例之小羊繁殖问题

一种羊 生命长度为 5 周年

满 2 周年生一只小羊 满四周年生一只小羊, 5 周年死

初始有 1 只 0 岁的羊,20 年后有多少羊。

$a = array(1,0,0,0,0);

for ($i=1; $i <= 20; $i++) {

array_pop($a);

array_unshift($a,0);

$a[0] = $a[2]+$a[4];

}

print_r($a);

echo array_sum($a);

array_push — 将一个或多个单元压入数组的末尾

array_pop — 将数组最后一个单元弹出

array_shift — 将数组开头的单元移出数组

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

$a = array('a', 'b');

print_r($a);

echo '
';

array_push($a, 'c');

print_r($a);

echo '
';

array_pop($a);

print_r($a);

echo '
';

array_shift($a);

print_r($a);

echo '
';

array_unshift($a, 'd');

print_r($a);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值