As in the code, they swap "firstname" ("Martin") and the name of the array ("Krönström"), or rather, assigning the value $firstname = $lastnames[$key]['firstname']; in the first foreach loop $firstname = $lastnames[$key]['firstname']; , use it in $newlastnames[$firstname]["firstname"] = $key; ?
Please explain what is assigned to funcion a ?
function a ($lastnames){ $newlastnames; foreach($lastnames as $key => $value){ $firstname = $lastnames[$key]['firstname']; $newlastnames[$firstname]["firstname"] = $key; $newlastnames[$firstname]["age"] = $lastnames[$key]['age']; $newlastnames[$firstname]["sex"] = $lastnames[$key]['sex']; echo $lastnames[$key]['firstname'].'<br>'; } return $newlastnames; } Whole code here
$lastnames = array( "Krönström" => array("firstname" => "Martin", "age" => 20, "sex" => "male"), "Kulper" => array("firstname" => "Laura-Liis", "age" => 17, "sex" => "female"), "Ööbik" => array("firstname" => "Tõnis", "age" => 21, "sex" => "male"), "Mitri" => array("firstname" => "Martten", "age" => 35, "sex" => "male"), "Lõsenko" => array("firstname" => "Evelina", "age" => 16, "sex" => "female"), "Reinaus" => array("firstname" => "Richard", "age" => 21, "sex" => "male")); $newlastnames = a($lastnames); saveFile($newlastnames); function saveFile($lastnames){ file_put_contents("q.json",json_encode($lastnames)); } function a ($lastnames){ $newlastnames; foreach($lastnames as $key => $value){ $firstname = $lastnames[$key]['firstname']; $newlastnames[$firstname]["firstname"] = $key; $newlastnames[$firstname]["age"] = $lastnames[$key]['age']; $newlastnames[$firstname]["sex"] = $lastnames[$key]['sex']; echo $lastnames[$key]['firstname'].'<br>'; } return $newlastnames; } function sortA($lastnames,$sortValue){ foreach($lastnames as $key => $value){ if($sortValue == "firstname"){ $throwArray[$key] = $key; }else{ $throwArray[$key] = $value[$sortValue]; } } array_multisort($throwArray, SORT_DEC, $lastnames); return $lastnames; }