私は現在、次のレイアウトでldap配列を通常の配列に解析するようにphp ldapバックエンドを取得しようとしています(これはajax呼び出しに戻してから、ライブディレクトリ検索の下のテーブルに出力することです):
--NA
--(動的行入力)
--name
--
勤務先住所
--電話番号
--メール
私は自分のコードを取得することができます:
//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 - 解決策:
Barbara のコメントの後、上記の var_dump を出力しました。これにより、当面の問題は、配列が多数の異なるインスタンスで宣言されており、それが最後の配列に影響を与えていたことにあることがわかりました。最初の行を単一の配列としてインスタンス化していたので、それを多次元配列としてインスタンス化し、最後にデータを配列に追加しました。
この問題を解決するために、配列を正しく作成するために $na[] = $row と $na[$row][] = $col の部分を単純に削除しました。**