我目前正在尝试让我的 php ldap 后端将 ldap 数组解析为具有以下布局的普通数组(这是传递回 ajax 调用,然后输出到实时目录搜索下的表中):
--NA
--(动态行条目)
--name
--office address
--telephone number
--mail
我设法得到我的代码:
//NEW ARRAY FOR COLUMN AND ROW
$na = array( array( ));
//MAKES IT EASIER TO RUN THROUGH ARRAY
$barray = array( cn , physicaldeliveryofficename , telephonenumber , mail );
//GOES THROUGH EACH ENTRY OUTPUTTING THAT ROW
for ($row=0; $row<$entries['count']; $row++) {
echo '<br />';
$na[] = $row;
//ADD EACH COL TO ARRAY AND DATA INTO COL
for ($col=0; $col<5; $col++) {
$na[$row][] = $col;
$na[$row][$col] = $entries[$row][$barray[$col]][0];
echo $na[$row][$col] . ' ';
}
}
努力让第一行名称输出,然后 for 循环继续并输出正确数量的行(对于我无论如何测试的参数,用一系列 echo 语句检查)。
谁能给我一些提示,说明我的代码为什么不起作用,以及如何改进代码。最后,任何更有效的指针都会有所帮助,因为我比 PHP 更习惯于 java。(暑期工作希望它在 PHP 中完成)
在此先感谢,乔
编辑 - VAR_DUMP
数组(18){[0]=>数组(5){[0]=>字符串(14)“史蒂文约翰逊”[1]=>字符串(7)“海伍德”[2]=>字符串(11)“ 01706694297" [3]=> 字符串(29) "Steven.Johnson@yearsley.co.uk" [4]=> NULL } [1]=> int(0) [2]=> int(1) [3] => int(2) [4]=> int(3) [5]=> int(4) [6]=> int(5) [7]=> int(6) [8]=> int(7 ) [9]=> int(8) [10]=> int(9) [11]=> int(10) [12]=> int(11) [13]=> int(12) [14]= > int(13) [15]=> int(14) [16]=> int(15) [17]=> int(16) }
**编辑 2 - 解决方案:
在芭芭拉的评论之后,我输出了上面的 var_dump,这让我看到手头的问题是在影响最终数组的许多不同实例中声明了数组。由于我将第一行实例化为单个数组,然后将其实例化为多维数组,最后将数据添加到数组中。
为了解决这个问题,我简单地删除了 $na[] = $row 和 $na[$row][] = $col 部分来正确地制作数组。**