Hoop dat jullie mij kunnen helpen met een probleem bij het maken van een array. Ik gebruik onderstaande foreach loop om een array te maken. Het is belangrijk dat de array maar één dimensie heeft, aangezien ik bij de laatste iteratie de array moet onderbreken (wat een nachtmerrie is bij multidimensionale arrays).
Bedankt voor de hulp vinTage. Het probleem is dat de output niet correct is. Ik wil geen nieuwe array, maar een kant en klaar bruikbare strings in dit formaat:
Wil ik geen multidimensionele arrays gebruiken omdat ik niet weet hoe daar de laatste iteratie te doorbreken. Helaas zelfs met uw code krijg ik nog steeds deze output:
Haha, ik begin me zorgen te maken over mijn communicatieskills na twaalf uur werken. Het probleem is waarschijnlijk zo klein dat je het niet ziet en op een of andere domme manier zie ik de oplossing niet.
Ik gebruik de volgende foreach om de strings te krijgen:
Het probleem is dus dat ik opnieuw arrays krijg in plaats van strings. Wat zoveel wilt zeggen als dat ik mulidimensionale arrays aanmaak, maar ik zie niet in hoe of waar ik dat doe. In het kort: alles in bold wil ik niet in de output.
Elke Array geeft ook als key 0 voor god weet welke reden. Ik vermoed dat daar een deel van het probleem zit. En dat is al nadat ik uw $index oplossing had geïntegreerd.
<?php
$str = '';
foreach($loop as $p){
//get the meta and taxonomy data
$name = get_the_term_list($p, "mountains");
$wtr_long = get_post_meta($p,"wtr_longitude",true);
$wtr_lat = get_post_meta($p,"wtr_latitude",true);
//Add to Array
$str .= 'latitude: "' . $wtr_lat . '", longitude: "' . $wtr_long . '", html: "' . $name .'~!~';
}
//nu kan je exploden op ~!~ om een nieuw array te krijgen met je vars erin
?>
Bedankt vinTage. Mits een paar kleine aanpassingen werkt het nu quasi perfect. Ook een belangrijke les geleerd over arrays, wat blijkbaar een moeilijk punt blijft.
Even voor de volledigheid, en misschien kan iemand anders er later nog iets van leren, hieronder de afgewerkte code.
//Add to Array
$map_string .= '{latitude: "' . $wtr_lat . '", longitude: "' . $wtr_long . '", html: "' . $name .'"},~!~';
//$map_string .= '{latitude: "' . $wtr_lat . '", longitude: "' . $wtr_long . '", html: "name"},~!~';
}
//Remove last three "~!~" characters from the string not to have one too many arrays when exploding
$clean_map_string = substr($map_string, 0, -3);
//nu kan je exploden op ~!~ om een nieuw array te krijgen met je vars erin
$map_array = explode('~!~', $clean_map_string);
$i = 0;
$length = count($map_array)-1;
//Inserts all the markers
foreach($map_array as $value){
if( $i != $length ){
echo $value;
}
else {
echo str_replace("},", "}],", $value);
}
$i++;
}