php 二维如何控制数组 输出的层数

比如一个二维数组如何只输出这个数组的第一维或者说是第一层?比如$array=array([a]=>array([a0]=>a00[a1]=>a11[a2]=>a22)[b... 比如一个二维数组
如何只输出这个数组的第一维或者说是第一层?
比如
$array=array(
[a]=>array([a0]=>a00 [a1]=>a11 [a2]=>a22)
[b]=>array([b0]=>b00 [b1]=>b11 [b2]=>b22)
)

我只想输出数组$array的第一层,即[a][b]这个(索引)名称
而不要其数组的值
展开
 我来答
day忘不掉的痛
2015-08-12 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223941
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
具体分析如下:

先来看看下面程序运行结果:

代码如下:

$numb=array(

array(10,15,30),array(10,15,30),array(10,15,30)
);

echo
count($numb,1);
A.3
B.12
C.6
D.9
答案是B
count函数中如果mode被设置为
COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数(也就是你结果的12)。如果不设置mode默认为0
。不检测多维数组(数组中的数组)(结果3)。

首先遍历的是外面的数组array得出有两个元素("color1″,"color2″,"color3″)
为3
再遍历("color1″,"color2″,"color3″)数组得出的是9个元素 为9
结果就是3+9=12

参考示例:

代码如下:

<?php
$fruits = array (
array (1,
2,null,null, 5, 6),
array (1, 2,null,null, 5,
6),
);
echo(count($fruits[0]));
?>

如果用其它方式定义的数组,比如:

代码如下:

<?php
$fruits[0][0]=1;
$fruits[0][3]=1;
$fruits[0][4]=1;
echo(count($fruits[0]));
?>
这样那就输出3,因为php中的数组不要求索引必须连续,参考手册上有如下一段:

数组:
PHP 中的数组实际上是一个有序图。
图是一种把 values 映射到 keys
的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。
因为可以用另一个
PHP 数组作为值,也可以很容易地模拟树。

实例:

获得二维或多维数组的第一维的长度,这是个常用的程序判断,比如读取的数组是一个二维数组:

代码如下:

<?php
$arr=array(
0=>array('title'
=> '新闻1', 'viewnum' => 123, 'content' =>
'ZAQXSWedcrfv'),
1=>array('title' => '新闻2', 'viewnum' => 99,
'content' =>
'QWERTYUIOPZXCVBNM')
);
?>
如果想统计数组$arr的长度,也就是说该二维数组只有两条新闻,想要的数字也是2,但是如果使用count($arr)不同版本的php,统计的结果是不一样的;

后来在php手册中发现,count函数还有第二个参数,解释如下:

count函数有两个参数:

0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
1(或COUNT_RECURSIVE)为检测多维数组,

所以如果要判断读取的数组$arr是不是有新闻信息,就要这样写了:

代码如下:

<?php
if(is_array($arr) &&
count($arr,COUNT_NORMAL)>0 )
{
.....
} else {

.....
}
?>
可以使用这样的代码来测试该函数:

代码如下:

<?php
$arr=array(
0=>array('title'
=> '新闻1', 'viewnum' => 123, 'content' =>
'ZAQXSWedcrfv'),
1=>array('title' => '新闻2', 'viewnum' => 99,
'content' => 'QWERTYUIOPZXCVBNM')
);
echo
'不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)
echo
"<br/>";
echo
'统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
?>
dingdang0702
2012-03-02 · TA获得超过384个赞
知道小有建树答主
回答量:375
采纳率:100%
帮助的人:244万
展开全部
$array是二维数组的话
Array (
[0] => Array ( [0] => 1 [1] => 2 [2] => 3 )
[1] => Array ( [0] => 3 [1] => 4 [2] => 5 )
)
要只取Array ( [0] => 1 [1] => 2 [2] => 3 ) 第一层的话
print_r($array[0]);就可以了
追问
你说的这个是第一组 我说的是第一层 请看我的补充问题
追答
$array=array(
[a]=>array([a0]=>a00 [a1]=>a11 [a2]=>a22)
[b]=>array([b0]=>b00 [b1]=>b11 [b2]=>b22)
)
foreach ($array as $key => $value) {
echo $key;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式