您的位置:首页 > 编程语言 > PHP开发

[完]PHP Array 创建、索引、添加、删除、判断是否存在指定元素

2016-09-14 17:12 555 查看
PHP中的数组实际上是一个有序映射。映射是一种把values关联到keys的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。数组元素的值也可以是另一个数组。树形结构和多维数组也是允许的。

创建Array

// 创建一个简单的数组
$array = array(1, 2, 3, 4, 5);
print_r($array);

// 现在删除其中的所有元素,但保持数组本身不变:
foreach ($array as $i => $value) {
unset($array[$i]);
}
print_r($array);

// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0)
$array[] = 6;
print_r($array);

// 重新索引:
$array = array_values($array);
$array[] = 7;
print_r($array);


结果:

Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
)
Array
(
[5] => 6
)
Array
(
[0] => 6
[1] => 7
)


数组索引

语法“index=>values”,用逗号分开,定义了索引和值。索引可以是字符串或数字。如果省略了索引,会自动产生从0开始的整数索引。如果索引是整数,则下一个产生的索引将是目前最大的整数索引+1。注意如果定义了两个完全一样的索引,则后面一个会覆盖前一个。

$fruits = array (
"fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
"numbers" => array(1, 2, 3, 4, 5, 6),
"holes"   => array("first", 5 => "second", "third")
);
print_r($fruits);

$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);

# 从1开始索引
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!


结果:

Array
(
[fruits] => Array
(
[a] => orange
 => banana
[c] => apple
)

[numbers] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)

[holes] => Array
(
[0] => first
[5] => second
[6] => third
)

)
Array
(
[0] => 1
[1] => 1
[2] => 1
[3] => 13
[4] => 1
[8] => 1
[9] => 19
)
Array
(
[1] => January
[2] => February
[3] => March
)
Hello baz!


数组末尾添加元素array_push()

[b]array_push()
将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。

$arr[]=与array_push()效果相同,但是其效率比array_push()高出将近一倍!

$arr = array();
array_push($arr, 1, 2, 3);
print_r($arr);

$arr = array();
$arr[] = 1;
$arr[] = 2;
$arr[] = 3;
print_r($arr);


结果:

Array
(
[0] => 1
[1] => 2
[2] => 3
)
Array
(
[0] => 1
[1] => 2
[2] => 3
)


删除数组末尾的一个元素array_pop()

array_pop() 弹出并返回array数组的最后一个单元,并将数组array的长度减一。如果array为空(或者不是数组)将返回NULL。

$arr1 = array("a", "b","c","d");
$temp = array_pop($arr1);
print_r($arr1);
print_r($temp);


结果:

Array
(
[0] => a
[1] => b
[2] => c
)
d


在数组的开始添加一个或多个元素array_unshift()

array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的字符串键名保持不变。

$arr1 = array("c","d");
array_unshift($arr1,"a","b");
print_r($arr1);


结果:

Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)


删除数组第一个元素array_shift()

array_shift()将array的第一个单元移出并作为结果返回,将array的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。如果array为空(或者不是数组),则返回NULL。

$arr1 = array("a","b","c","d");
echo (array_shift($arr1)). "\n";
print_r($arr1);


结果:

a
Array
(
[0] => b
[1] => c
[2] => d
)


数组中是否存在指定的元素in_array()

in_array()函数在数组中搜索给定的值,in_array(value,array,type),如果给定的值value存在于数组array中则返回true。如果第三个参数设置为true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回true。

$people = array("Peter", "Joe", "Glenn", "Cleveland");

if (in_array("Glenn",$people)) {
echo "Match found";
} else {
echo "Match not found";
}


[参考] http://blog.csdn.net/th362cn/article/details/8575344

[参考] http://www.php100.com/cover/php/18.html

[参考] http://www.php100.com/cover/php/155.html

[参考] http://zhidao.baidu.com/link?url=m0sLyMWFeR3Q5LT_3BN1i44wXWJ6E67YrJoamnLEO3Xfe61ylBW4x7KcFsA8-bdZIdbLqE4zz8OHke65guWHpK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐