아래 질문.다중 레벨 배열에서 데이터 가져 오기
이것은 Pixeler의 대답을 기반으로 한 해결책입니다.
<?php
$i = 0;
foreach ($array as $k1 => $v1) {
if (is_array($v1)) {
echo $k1."<br />";
foreach ($v1 as $k2 => $v2) {
echo "--".$k2."<br />----".$v2."<br />";
}
$i++;
}
echo "<br /<br />";
}
?>
<?php
$array = array("Apples" => array("Red" => "$2.95", "Green" => "$2.45"),
"Oranges" => array("Navel" => "$4.95"),
"Grapes" => array("Purple" => "$3.75", "Green" => "$3.25")
);
?>
은 위에서 무엇 걸릴 수를 호출하여 각각의 값에 대한 텍스트를 얻을 수 있습니까? ? 가 어떻게 ... 이런 일을 할 수
<?php
echo $array[0];
//Outputs "Apples"
echo $array[0][0];
//Outputs "Red"
echo $array[0][0][0];
//Outputs "$2.95"
echo $array[3][2][1];
//Outputs "$3.25" (Grapes > Green > Price)
?>
편집 : 아이디어는 내가 첫 번째 수준 (사과, 오렌지, 포도), 두 번째 수준을 반환 할 수 있다는 것입니다 (빨강, 녹색, 배꼽, 자주색, 녹색) 및 세 번째 수준 ($ 2.95, $ 2.45, $ 4.95, $ 3.75, $ 3.25)으로 전화를 걸 수 있습니다.
예를 들어, 나는 이런 식으로 뭔가를 할 :
<?php
count($array); //returns 3 (Apples, Oranges, Grapes)
//Do some for/foreach function that will produce the following:
//Apples
//->Red: $2.95
//->Green: $2.45
//Oranges
//->Navel: $4.95
//Grapes
//Purple: $3.75
//Green: $3.25
//I'm hoping to structure the code like this:
foreach($i = 0; $i =< count($array); $i++){
//echo title of array (Apples)
//echo each child key and it's value (Red: $2.95; Green: $2.45)
foreach($secondcounter = 0; $secondcounter =< count($array[$i]); $secondcounter++){
echo array_key($array[$i][$secondcounter]) . ": " .$array[$i][$secondcounter];
//Note: I don't actually know if array_key does the trick or not, it's meant to return "Red" in this case, while the non array_key()'d is meant to return the price of red apples, $2.95
}
?>
편집 : 그것은 내가 데이터를 호출하는 단어를 사용할 수 없으므로주의하는 것이 중요하다. 사과는 데이터베이스에서로드하는 데이터 행에 따라 변경 될 수 있으므로 배열의 첫 번째 항목을 호출하려면 숫자 [0]를 사용해야합니다. 다른 말로하면 ... 사과는 실제로 책이 될 수 있고, 레드는 책 => 가격의 이름으로 판명 될 수 있습니다.
나는이 함수에 지나치게 익숙하지는 않지만 serialize/unserialize를 사용하여 데이터베이스에서 데이터를 저장하고 검색하려고합니다. 사용법을 간략하게 살펴 보았지만 사용하기 쉽습니다.
나는 몇 시간 동안 연구를 해왔지만 아무것도 찾을 수 없다. 텍스트가 아닌 숫자로 데이터를 호출 할 수 있어야합니다. 따라서 $ array [ "사과"]는 받아 들일 수 없습니다.
또한 json_decode를 살펴보고 serialize/unserialize를했는데 간단한 모양에서 기본 아이디어를 얻었을 것이라고 생각하지만 위의 데이터를 호출하는 방법을 이해하는 것이 중요하다고 생각합니다. 예. 어떤 도움이라도 정말 좋을 것입니다.
그래서 숫자 배열과 같은 배열을 사용하고 싶지만 예제의 개수는 무엇인지 알고 싶습니다. 'Grapes -> Purle'입니까? 또한 이러한 배열을 데이터베이스에 보관하려면'serialize' 및'unserialize'를 사용하는 것이 좋습니다. – Revenant
그래, 그렇게 생각해. "사과", "빨강", "$ 2.95"등 모든 단어를 반환 할 수 있기를 바랍니다. 하지만 숫자를 사용하여 모든 값을 반환 할 수 있기를 원합니다. –
나는 당신이하고 싶은 것을 다시 생각해야 할 것입니다. 관련 배열과 숫자 배열을 사용하여 mysql에서 데이터를 가져 오는 것이 더 쉽지는 않을 것입니다. 당신은 그들 모두를 가질 것이고 당신이 원하는대로 할 수 있습니다. 다른 방법으로는, 여러 배열을 만들고, 비교하고, 인덱스 번호 등을 찾아야합니다. 등등. 많은 줄을 코딩하여 작성하게 될 것입니다. – Revenant