21,886
社区成员
发帖
与我相关
我的任务
分享
$arr=array( array('id'=>1,'P_ID'=>'0','name'=>'php新闻'), array('id'=>3,'P_ID'=>'1','name'=>'asp新闻'), array('id'=>2,'P_ID'=>'2','name'=>'java新闻'),array('id'=>5,'P_ID'=>'0','name'=>'linux新闻') );
现求一个函数,能根据传入的P_ID值分别取出元素来放到一个新的数组当中去,比如我传入P_ID=0,则取出arr[0]和arr[3]组成一个新的数组,各位前辈有什么好办法?谢谢了! 还有为什么我下面这个函数不行啊。哪里错了!请求高手解答!
function getNode($pt=0) {
for ($i = 0; $i < count($arr); $i++) {
if($arr[$i]["P_ID"]=$pt){
$row[]=$arr[$i];
}
}
return $row;
}
print_r(getNode());
function getNode($arr,$pt=1,$i=1){
$array = array();
foreach($arr as $val){
if($val[$i]==$pt){
$array[] =$val;
}
}
return $array;
}
print_r(getNode($arr));
/*如果你说的是这个意思的话,那就是这样了*/
$arr=array(
array(1=> 1,2=>'0',3=>'php新闻'),
array(1=> 3,2=>'1',3=>'asp新闻'),
array(1=> 2,2=>'2',3=>'java新闻'),
array(1=> 5,2=>'0',3=>'linux新闻')
);
function getNode($pt=0){
global $arr;
$array = array();
foreach($arr as $vo){
if($vo[2]==$pt){
$array = array_merge($array,$vo);
}
}
return $array;
}
print_r(getNode());
我的数组打印出来是这样的:
Array
(
[0] => Array
(
[0] => 1
[1] => 0
[2] => 新闻相册
[3] => news
[4] => 新闻图片
[5] => 一些新闻图片
[6] => 1
[7] => xw
[8] => 23
[9] => 1
[10] => 25
[11] => 2011-01-13
[12] => ss
[13] => 0000-00-00
[14] =>
)
[1] => Array
(
[0] => 2
[1] => 0
[2] => 娱乐相册
[3] => aa
[4] => 娱乐图片
[5] => 一些娱乐图片
[6] => 1
[7] => yl
[8] => 22
[9] => 1
[10] => 11
[11] => 2011-01-18
[12] => aa
[13] => 0000-00-00
[14] =>
)
[2] => Array
(
[0] => 9
[1] => 2
[2] => 体育相册
[3] =>
[4] => sport
[5] => sport photo
[6] => 1
[7] => sport
[8] => 0
[9] => 2
[10] => 0
[11] => 2011-02-10
[12] => ss
[13] => 0000-00-00
[14] =>
)
[3] => Array
(
[0] => 10
[1] => 1
[2] => linux相册
[3] => DD
[4] => DD
[5] => DD
[6] => 1
[7] => DD
[8] => 0
[9] => 0
[10] => 0
[11] => 2011-02-09
[12] => DD
[13] => 0000-00-00
[14] =>
)
)
请求各位前辈解答!谢谢!
function getNode($pt=0) {
global $arr;
$array = array();
foreach($arr as $vo){
if($vo["P_ID"]==$pt){
$array = array_merge($array,$arr[$pt]);
}
}
return $array;
}
function getNode($pt=0) {
for ($i = 0; $i < count($arr); $i++) {
if($arr[$i]["P_ID"]=$pt){
$row[]==$arr[$i];
}
}
return $row;
}
print_r(getNode());
function getNode($pt = 0) {
global $arr;
$row = array();
for ($i = 0; $i < count($arr); $i++) {
if ($arr[$i]["P_ID"] == $pt) {
$row[] = $arr[$i];
}
}
return $row;
}
print_r(getNode());
function getNode($pt = 0) {
global $arr;
for ($i = 0; $i < count($arr); $i++) {
if ($arr[$i]["P_ID"] == $pt) {
$row[] = $arr[$i];
}
}
return $row;
}
print_r(getNode());
<?php
$arr=array(
array('id'=> 1,'P_ID'=>'0','name'=>'php新闻'),
array('id'=> 3,'P_ID'=>'1','name'=>'asp新闻'),
array('id'=> 2,'P_ID'=>'2','name'=>'java新闻'),
array('id'=> 5,'P_ID'=>'0','name'=>'linux新闻')
);
/*
现求一个函数,能根据传入的P_ID值分别取出元素来放到一个新的数组当中去,
比如我传入P_ID=0,则取出arr[0]和arr[3]组成一个新的数组,各位前辈有什么好办法?谢谢了!
还有为什么我下面这个函数不行啊。哪里错了!请求高手解答!
*/
function getNode($pt=0) {
global $arr;
$array = array();
$length = count($arr);
if ($pt < $length) {
$array = $arr[$pt];
$pt += 3;
if($pt < $length) $array = array_merge($array,$arr[$pt]);
}
return $array;
}
print_r(getNode());
/*
Array
(
[id] => 5
[P_ID] => 0
[name] => linux新闻
)
*/