私は多値配列の値を解析して親値の文字列を作成しています。配列foreach中に文字列を連結し、親値を維持します。
私の理想の文字列は次のようになります。あなたは新しい配列が発見された場合、親の値が一掃されていない見ることができるように
Adam
Beth
Charlie_
Charlie_Mike
Charlie_Nancy
Charlie_Oscar_
Charlie_Oscar_Peter
Charlie_Oscar_Paul
Danny
しかし、私は
Adam
Beth
Charlie
Charlie_Mike_
Charlie_Mike_Nancy_
Charlie_Mike_Nancy_Oscar
Charlie_Mike_Nancy_Oscar_Peter_
Charlie_Mike_Nancy_Oscar_Peter_Paul_
CharlieDanny_
を取得しています。さらに、Danny
配列は最上位の配列項目であり、Charlie
を付けるべきではありません。
私は間違っていますか?ここで
は私のコードです:
$sufix = "_";
function renderNames(array $data, $name = "")
{
$html = '<ul>';
foreach ($data as $item) {
$html .= '<li>';
if (array_key_exists('children', $item)) {
$name .= $item['name'];
$html .= $name . "<br/>";
$html .= renderNames($item['children'], $name . $sufix);
} else {
if (strlen($name) <= 0) {
$name = $item['name'];
$html .= $name . "<br/>";
$name = "";
} else {
$name .= $item['name'] . $sufix;
$html .= $name . "<br/>";
}
}
$html .= '</li>';
}
$html .= '</ul>';
return $html;
}
私が参考にSO Questionを使用しました。しかし、私は配列を作成したくないです、私は値から文字列を作成したいと思ってここで私は入力が重複していると尋ねました。
$aFullArray = array();
$aFullArray[] = array("name" => "Adam", "address" => "123 main", "phone" => "000-000-0000");
$aFullArray[] = array("name" => "Beth", "address" => "123 main", "phone" => "000-000-0000");
$aChildren = array();
$aChildren [] = array("name" => "Mike", "address" => "123 main", "phone" => "000-000-0000");
$aChildren[] = array("name" => "Nancy", "address" => "123 main", "phone" => "000-000-0000");
$subChild = array();
$subChild [] = array("name" => "Peter", "address" => "123 main", "phone" => "000-000-0000");
$subChild [] = array("name" => "Paul", "address" => "123 main", "phone" => "000-000-0000");
$aChildren [] = array("name" => "Oscar", "address" => "123 main", "phone" => "000-000-0000",
"children" => $subChild);
$aFullArray[] = array("name" => "Charlie", "address" => "123 main", "phone" => "000-000-0000",
"children" => $aChildren);
$aFullArray[] = array("name" => "Danny", "address" => "123 main", "phone" => "000-000-0000");
ありがとうございます!あなたはそれをたくさん単純化しました! –
あなたは大歓迎です! – Piyin