PHP取得数组中的所有索引

php提供函数array_key()用来获取数组中所有的索引名,该函数语法如下所示arrayarraya_kays(array$arr[,mixed$search_val... php提供函数array_key()用来获取数组中所有的索引名,该函数语法如下所示
array arraya_kays(array $arr [, mixed $search_value[,bool $strict]])
该函数会将参数数组$arr中所有的索引名返回到一个数组中。参数search_value是可选的,如果指定该参数,则函数rray_keys只返回该元素值对应的索引名,可选参数$strict用来进行全等比较。
<?php
$arr1=array(
0=>100,
"gold"=>"money"
);

$arr2=array(
'sunday',
'saturday',
'monday',
'sunday',
'sunday',
);

echo'<pre>';
echo'数组arr1的全部索引是:';
print_r(array_keys($arr1));
echo'数组arr2中元素"sunday"全部索引是:';
echo'<br/>';
print_r(array_keys($arr2,'sunday'));
?>
这段代码第2次调用函数array_kays()时,指定了第二个参数为"sunday",也就是说,函数array_kays()只找出元素值为"sunday"的索引
显示结果:
数组arr1的全部索引是:Array
(
[0]=>0
[1]=>gold
)
数组arr2中元素"sunday"全部索引是:
Array
(
[0]=>0
[1]=>3
[2]=>4
)
问题
全等比较是谁和谁比较?
该元素值对应的索引名。该元素值是sunday,该元素是谁?索引名是哪些?
print_r(array_keys($arr2,'sunday'));
array arraya_kays(array $arr [, mixed $search_value[,bool $strict]])
print_r(array_keys($arr2,'sunday'));中,$arr2是$arr,'sunday'是$search_value对吗?
0和gold是索引,0和1是他们值的重新命名的数字索引吗?还有三个sunday的索引0、3、4对应的0、1、2,为什么索引还会有自己的索引?
展开
 我来答
BendustiK
推荐于2017-11-23 · TA获得超过588个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:240万
展开全部
希望我的回答是准确的

1.全等比较的意思是检查数据类型,比如有这么一个数组:$a1 = array(10,20,30,"10"),如果你array_keys($a1,"10",false),则会返回两个值,因为在数组中存在一个int和一个string,最终值都是10;但是如果第三个参数设置为true,那么会判断查询的值的类型是否存在于数组中,这时候返回值就不同了。可以亲自尝试一下
2.关于索引的这个例子,PHP中的数组都是有索引的,如果你没有加索引,那么默认会给你加上。
例如:
$arr2=array(
'sunday',
'saturday',
'monday',
'sunday',
'sunday',
);
这种写法是缩减的,它完整的写法应该是
$arr2=array(
0 => 'sunday',
1 => 'saturday',
2 => 'monday',
3 => 'sunday',
4 => 'sunday',
);

这样。array_keys找出所有此数组中的键值,那么如果不带参数,则会返回0,1,2,3,4这样的。而返回值又是一个数组,所以PHP把返回的键值存放在一个数组中。这样你就会混乱。这个例子不好,我们举另外一个例子:
比如现在有个数组:
$a = array(
'id' => 1,
'name' => wang,
'image' => 'touxiang.jpg'
);
那么,array_keys返回的结果应该是
array(
0 => 'id',
1 => 'name',
2 => 'image'
)
因为你取出键值时PHP会默认存为一个数组,所以会产生某个数组键值的键值,但是这个键值只是默认加上的,是PHP的数组特性,并不需要特别关心。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式