Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
檀越@新空间
Coding Tree
提交
ec4d8e13
C
Coding Tree
项目概览
檀越@新空间
/
Coding Tree
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coding Tree
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ec4d8e13
编写于
3月 09, 2022
作者:
彭世瑜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix
上级
ece1651d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
446 addition
and
3 deletion
+446
-3
blog/php-basic/array-function.md
blog/php-basic/array-function.md
+161
-0
blog/php-basic/array.md
blog/php-basic/array.md
+281
-0
blog/php-basic/index.md
blog/php-basic/index.md
+4
-0
blog/php-basic/string.md
blog/php-basic/string.md
+0
-3
未找到文件。
blog/php-basic/array-function.md
0 → 100644
浏览文件 @
ec4d8e13
# 数组相关函数
自定义数组打印函数,便于查看
```
php
function
print_array
(
$array
){
foreach
(
$array
as
$key
=>
$value
){
echo
"
$key
=>
$value
\n
"
;
}
}
```
## 排序函数
按照ASCII码排序
`sort`
对 array 本身按照值(value)升序排序。(下标重排)
```
php
sort
(
array
&
$array
,
int
$flags
=
SORT_REGULAR
)
:
bool
// eg:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
sort
(
$arr
);
print_array
(
$arr
);
// 0 => Jack
// 1 => Steve
// 2 => Tom
```
`rsort`
对 array 本身按照值(value)降序排序。
```
php
rsort
(
array
&
$array
,
int
$flags
=
SORT_REGULAR
)
:
bool
// eg:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
rsort
(
$arr
);
print_array
(
$arr
);
// 0 => Tom
// 1 => Steve
// 2 => Jack
```
`asort`
对 array 自身按照升序进行排序(下标保留)
```
php
asort
(
array
&
$array
,
int
$flags
=
SORT_REGULAR
)
:
bool
// eg:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
asort
(
$arr
);
print_array
(
$arr
);
// 1 => Jack
// 2 => Steve
// 0 => Tom
```
`arsort`
对 array 本身按照降序排序
```
php
arsort
(
array
&
$array
,
int
$flags
=
SORT_REGULAR
)
:
bool
// eg:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
arsort
(
$arr
);
print_array
(
$arr
);
// 0 => Tom
// 2 => Steve
// 1 => Jack
```
`ksort`
对 array 本身进行按键(key)升序排序。
```
php
ksort
(
array
&
$array
,
int
$flags
=
SORT_REGULAR
)
:
bool
// eg:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
ksort
(
$arr
);
print_array
(
$arr
);
// 0 => Tom
// 1 => Jack
// 2 => Steve
```
`krsort`
对 array 本身按照键(key)降序排序。
```
php
krsort
(
array
&
$array
,
int
$flags
=
SORT_REGULAR
)
:
bool
// eg:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
krsort
(
$arr
);
print_array
(
$arr
);
// 2 => Steve
// 1 => Jack
// 0 => Tom
```
`shuffle`
随机打乱
```
php
shuffle
(
array
&
$array
)
:
bool
// eg:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
shuffle
(
$arr
);
print_array
(
$arr
);
// 0 => Jack
// 1 => Steve
// 2 => Tom
```
## 指针函数
reset
end
next
prev
current
key
## 其他函数
count
array_push()
array_pop
array_reverse
in_array
array_keys
array_values
https://www.bilibili.com/video/BV18x411H7qD?p=87&spm_id_from=pageDriver
\ No newline at end of file
blog/php-basic/array.md
0 → 100644
浏览文件 @
ec4d8e13
# 数组 array
## 数组的概念
数据的组合,将一组数据存储到一个指定的容器中,用变量指向该容器。
可以通过变量一次性得到该容器中的所有数据
## 数组的定义
```
php
// 1、使用array关键字
$变量
=
array
(
元素1
,
元素2
,
...
);
// 2、使用中括号
$变量
=
[
元素1
,
元素2
,
...
];
// 3、隐形定义数组
$变量
[]
=
值1
;
// 默认下标是数字,默认从0开始
$变量
[
下标
]
=
值
;
// 下标或者key,可以是数字或字符串
// 下标自动为前面最大+1
```
示例
```
php
// 方式一:
$arr
=
array
(
'Tom'
,
'Jack'
,
'Steve'
);
// 方式二:
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
// 方式三:
$arr
[]
=
'Tom'
;
$arr
[]
=
'Jack'
;
$arr
[]
=
'Steve'
;
// 输出结果一样
var_dump
(
$arr
);
// array(3) {
// [0]=> string(3) "Tom"
// [1]=> string(4) "Jack"
// [2]=> string(5) "Steve"
// }
```
## PHP 数组特点
1、可以整数下标或者字符串下标
-
索引数组:数组下标为整数
-
关联数组:数组下标为字符串
-
混合数组:不同下标可以混合存在
2、数组元素的顺序以放入顺序为准,跟下标无关
3、数字下标的自增长特性
4、特殊值下标的自动转换
```
php
<?php
$arr
[
false
]
=
'Tom'
;
$arr
[
true
]
=
'Jack'
;
$arr
[
null
]
=
'Steve'
;
var_dump
(
$arr
);
// array(3) {
// [0] => string(3) "Tom"
// [1] => string(4) "Jack"
// [""]=> string(5) "Steve"
// }
```
5、PHP 数组元素没有类型限制
6、PHP 数组元素没有长度限制
## 多维数组
多维数组:数组里的元素又是数组
1、二维数组: 数组中的所有元素都是一维数组
```
php
<?php
$arr
=
[
[
'name'
=>
'Tom'
,
'age'
=>
23
],
[
'name'
=>
'Jack'
,
'age'
=>
24
],
];
var_dump
(
$arr
);
// array(2) {
// [0]=> array(2) {
// ["name"] => string(3) "Tom"
// ["age"] => int(23)
// }
// [1]=> array(2) {
// ["name"] => string(4) "Jack"
// ["age"] => int(24)
// }
// }
```
2、多维数组:二维数组中的元素可以继续是数组
不建议超过三维以上的数组
3、异型数组(不规则数组)
数组的中的元素不规则,有普通基本变量也有数组
## 数组遍历
普通数组可以通过下标来访问
```
php
<?php
$arr
=
[
[
'name'
=>
'Tom'
,
'age'
=>
23
],
[
'name'
=>
'Jack'
,
'age'
=>
24
],
];
// 访问一维
var_dump
(
$arr
[
0
]);
// array(2) {
// ["name"] => string(3) "Tom"
// ["age"] => int(23)
// }
// 访问二维
var_dump
(
$arr
[
0
][
'name'
]);
// string(3) "Tom"
```
1、Foreach 语法
```
php
foreach
(
$数组
as
[
$key
=>
]
$value
){
// key下标 value值
}
```
示例
```
php
<?php
$arr
=
[
[
'name'
=>
'Tom'
,
'age'
=>
23
],
[
'name'
=>
'Jack'
,
'age'
=>
24
],
];
foreach
(
$arr
as
$index
=>
$item
){
echo
$index
,
$item
[
'name'
],
$item
[
'age'
]
.
PHP_EOL
;
}
// 0Tom23
// 1Jack24
```
2、foreach 遍历原理
本质是数组内部有一个指针,默认指向数组元素的第一个元素
foreach 就是利用指针取获取数据,同时移动指针
1.
foreach 会重置指针,让指针指向第一个元素
2.
进入 foreach 循环,通过指针获取元素
3.
进入循环体执行
4.
重复此过程,直到取不到元素
3、for 循环遍历数组
获取数组长度 count()
要求数组元素下标有规律
```
php
<?php
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
for
(
$i
=
0
,
$len
=
count
(
$arr
);
$i
<
$len
;
$i
++
){
echo
'['
.
$i
.
'] '
.
$arr
[
$i
]
.
PHP_EOL
;
}
// [0] Tom
// [1] Jack
// [2] Steve
```
4、while 循环
```
php
<?php
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
$i
=
0
;
$len
=
count
(
$arr
);
while
(
$i
<
$len
){
echo
'['
.
$i
.
'] '
.
$arr
[
$i
]
.
PHP_EOL
;
$i
++
;
}
// [0] Tom
// [1] Jack
// [2] Steve
```
4、each (7 版本以后已弃用)
```
php
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
// 通过each移动数组指针下移
while
(
$item
=
each
(
$arr
)){
var_dump
(
$item
);
}
// array(4) {
// [0] => int(0)
// [1] => string(3) "Tom"
// ["key"] => int(0)
// ["value"] => string(3) "Tom"
// }
```
5、list 按照下标取值
```
php
<?php
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
list
(
$name1
,
$name2
)
=
$arr
;
var_dump
(
$name1
,
$name2
);
// string(3) "Tom"
// string(4) "Jack"
```
6、while + each + list 配合
```
php
<?php
$arr
=
[
'Tom'
,
'Jack'
,
'Steve'
];
// 通过each移动数组指针下移
while
(
list
(
$key
,
$value
)
=
each
(
$arr
)){
echo
'['
.
$key
.
'] '
.
$value
.
PHP_EOL
;
}
// [0] Tom
// [1] Jack
// [2] Steve
```
blog/php-basic/index.md
浏览文件 @
ec4d8e13
...
@@ -23,3 +23,7 @@
...
@@ -23,3 +23,7 @@
[
PHP 错误处理 error
](
blog/php-basic/error.md
)
[
PHP 错误处理 error
](
blog/php-basic/error.md
)
[
PHP 字符串 String
](
blog/php-basic/string.md
)
[
PHP 字符串 String
](
blog/php-basic/string.md
)
[
PHP 数组 array
](
blog/php-basic/array.md
)
[
PHP 数组相关函数
](
blog/php-basic/array-function.md
)
blog/php-basic/string.md
浏览文件 @
ec4d8e13
...
@@ -375,6 +375,3 @@ str_shuffle(string $str): string
...
@@ -375,6 +375,3 @@ str_shuffle(string $str): string
echo
str_shuffle
(
'ABCDEFG'
);
echo
str_shuffle
(
'ABCDEFG'
);
// GBEACDF
// GBEACDF
```
```
https://www.bilibili.com/video/BV18x411H7qD?p=81&spm_id_from=pageDriver
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录