一、数组的键|值操作函数
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">1.函数array_values()</span>
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">该函数是返回数组所有元素的值,只有一个必选参数,规定传入给定的数组。返回一个包含所有数组“值”的数组,但是不保留键名,被返回的数组键key,是重新建立索引,从0开始递增。适用于数组下标混乱的数组或者把关联数组转换成索引数组。</span>
<?php
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
print_r(array_values($a));
?>
Array ( [0] => Cat [1] => Dog [2] => Horse )
2.函数array_keys(array input,[mixed search_value],[bool strict])
函数的作用是返回数组的键名,函数中一个必须参数,两个可选参数。
如果指定了可选参数search_value,那么就返回search_value的键名,否则返回所有的键名数组。自php5,参数strict参数来进行全等比较,默认false不依赖类型,true话,在数组input寻找与search_value相同的类型值,如果没有不返回。
<?php
$a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
print_r(array_keys($a));
?>
输出:
Array ( [0] => a [1] => b [2] => c )
<?php
$a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
print_r(array_keys($a,"Dog"));
?>
输出:
Array ( [0] => c)
</pre><pre name="code" class="html"><?php
$a=array(10,20,30,"10");
print_r(array_keys($a,"10",false));
?>
输出:
Array ( [0] => 0 [1] => 3 )
<?php
$a=array(10,20,30,"10");
print_r(array_keys($a,"10",true));
?>
输出:
Array ( [0] => 3)
3.函数in_array(mixed needle,array haystack,[bool strict])
函数作用是检查数组是否有某个值,三个参数前两个必须,最后一个可选。needl是要在数组haystack要寻找的值。找到返回ture,否则为false。如果第三个参数设置为true,needl类型也要和数组haystack的值一样才会返回true。
<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
if (in_array("Glenn",$people))
{
echo "Match found";
}
else
{
echo "Match not found";
}
?>
输出:
Match found
<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland", 23);
if (in_array("23",$people, TRUE))
{
echo "Match found<br />";
}
else
{
echo "Match not found<br />";
}if (in_array("Glenn",$people, TRUE))
{
echo "Match found<br />";
}
else
{
echo "Match not found<br />";
}if (in_array(23,$people, TRUE))
{
echo "Match found<br />";
}
else
{
echo "Match not found<br />";
}
?>
输出:
Match not found
Match found
Match found
4.array_search(mixed needl ,array haystack,[bool strict])
array_search和in_array()类似,唯一不同,array_search()返回是needle键名。
5.array_key_exists(mixed key,array haystack)
5.array_key_exists(mixed key,array haystack)
函数查找haystack中的键名是否有key,因为数组键名是唯一。
<?php
$a=array("a"=>"Dog","b"=>"Cat");
if (array_key_exists("a",$a))
{
echo "Key exists!";
}
else
{
echo "Key does not exist!";
}
?>
输出:
Key exists!
<?php
$a=array("Dog",Cat");
if (array_key_exists(0,$a))
{
echo "Key exists!";
}
else
{
echo "Key does not exist!";
}
?>
输出:
Key exists!
6.array_flip(array trans)
函数作用是交换数组的键和值,返回交换后的数组,如果一个值出现多次,那么最后一个键名将作为他的值,覆盖前面出现的值。如果原数组值的类型不是字符串或整数,那么报错。
<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse");print_r(array_flip($a));
?>
输出:
Array ( [Dog] => 0 [Cat] => 1 [Horse] => 2 )
7.array_reverse(array array[,bool preverse_key])
函数左右是将原数组中的元素顺序反转,返回反转后的数组。如果preverse_key为true,则元素的键名保持不变。
<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
print_r(array_reverse($a));
?>
输出:
Array ( [c] => Horse [b] => Cat [a] => Dog )