Guest  
									
						
		
						
						
		 
		
						
						 Abrufen von Subarray-Daten aus einem tief verschachtelten Array in PHP 
													
							
						
									
						Post 
					 
								by Guest  28 Dec 2024, 15:40 
			
			
			
			
			Ich möchte die Daten aus tief verschachtelten Arrays extrahieren. Ich bin auf der Suche nach einer Funktion, die einen Teil des Arrays liefert, der bestimmten Kriterien entspricht.  Ich bin auf der Suche nach den Daten, die unter dem Subarray „i“ => „p“ zu finden sind.
Gegeben sei das folgende verschachtelte Array:
Code: Select all 
              [
'a' => [
'i' => [
'p' => [
'v' => [
'age'  => 10,
'name' => 'John',
'city' => 'Seattle'
],
'l' => [
'referee' => 'Jane Smith'
],
'm' => [
'referee' => 'Jane Smith'
],
]
]
],
'b' => [
'i' => [
'p' => [
'sibling' => 'Peter'
]
],
],
'c' => [
'i' => [
'p' => [
'material' => [
'i' => [
'p' => [
'marketId' => [
'title' => 'marketplaceId'
],
'color' => [
'i' => [
'p' => [
'value' => [
'title' => 'Mr',
"type" => "string"
],
'language' => 'C++'
]
]
],
],
]
]
]
],
],
'd' => [
'i' => [
'p' => [
'schedule' => [
'i' => [
'p' => [
'value' => [
'title' => 'your value',
'description' => 'your description'
]
]
]
]
]
]
],
'e' => [
'i' => [
'p' => [
'value' => [
'title' => 'your value',
'description' => 'your description'
],
'language' => [],
'marketplace' => []
]
],
]
]
Ich suche etwas wie:
Code: Select all 
Array(
a => Array(
'v' => [
'age'  => 10,
'name' => 'John',
'city' => 'Seattle'
],
'l' => [
'referee' => 'Jane Smith'
],
'm' => [
'referee' => 'Jane Smith'
],
b =>
[
'sibling' => 'Peter'
]
c =>
material => [
'marketId' => [
'title' => 'marketplaceId'
],
'color' => [
'i' => [
'p' => [
'value' => [
'title' => 'Mr',
"type" => "string"
],
'language' => 'C++'
]
]
],
],
d => schedule
=> [
'value' => [
'title' => 'your value',
'description' => 'your description'
]
]
e => [
'value' => [
'title' => 'your value',
'description' => 'your description'
],
'language' => [],
'marketplace' =>  []
]
)
)
Ich habe diese Funktion ausprobiert:
Code: Select all 
function getIPData($array, $prefix = '') {
$return = [];
foreach ($array as $key => $value) {
if (!empty($value['i']['p'])) {
$return = array_merge($return, getIPData($value['i']['p'], $prefix . $key . '_'));
} else {
echo "Prefix: $prefix Key: $key \n";
$return[$prefix . $key] = $value;
}
}
return $return;
}
aber es ergibt das folgende Array:
Code: Select all 
Array
(
[a_v] => Array
(
[age] => 10
[name] => John
[city] => Seattle
)
[a_l] => Array
(
[referee] => Jane Smith
)
[a_m] => Array
(
[referee] => Jane Smith
)
[b_sibling] => Peter
[c_material_marketId] => Array
(
[title] => marketplaceId
)
[c_material_color_value] => Array
(
[title] => Mr
[type] => string
)
[c_material_color_language] => C++
[d_schedule_value] => Array
(
[title] => your value
[description] => your description
)
[e_value] => Array
(
[title] => your value
[description] => your description
)
[e_language] => Array
(
)
[e_marketplace] => Array
(
)
)
										
						 
		 
				
		
		 
	 
	1735396843 
Guest 
Ich möchte die Daten aus tief verschachtelten Arrays extrahieren. Ich bin auf der Suche nach einer Funktion, die einen Teil des Arrays liefert, der bestimmten Kriterien entspricht.  Ich bin auf der Suche nach den Daten, die unter dem Subarray „i“ => „p“ zu finden sind.