前提・実現したいこと
連想配列からkeyを抽出した配列を返す関数を作りたいので
PHPの配列関数を使わずに作成したいと考えています。
以下の方法で試しているのですがkeyをすべて抽出することができません…。
php
1<?php 2echo "<h1>Keyの抽出</h1>"; 3 4function array_keys(array $arr) 5{ 6 $extractedKey = []; //keyを抽出した配列を作成する 7 foreach ($arr[0] as $key => $value) { 8 $extractedKey[] = $key; 9 } 10 return $extractedKey; 11} 12 13 14echo "<pre>\n"; 15 16$data = [ 17 ["ID" => 1, "氏名" => "山田太郎", "役職" => "社長"], 18 ["ID" => 2, "氏名" => "山本二郎", "年齢" => 45, "入社年" => "1989"], 19 ["ID" => 3, "年齢" => 35, "氏名" => "山崎三郎", "性別" => "男"], 20 ["ID" => 4, "年齢" => 30, "役職" => "係長", "性別" => "女"], 21 ["ID" => 5, "氏名" => "山木五郎", "役職" => "社員", "入社年" => "2005"], 22]; 23$keys = array_keys($data); 24var_dump($keys); 25 26$data = [ 27 ["ID" => 1, "名前" => "ポチ", "犬種" => "柴犬", "性別" => "オス"], 28 ["ID" => 2, "名前" => "ハナコ", "性別" => "メス", "犬種" => "ポメラニアン"], 29 ["ID" => 3, "名前" => "メアリー", "犬種" => "プードル", "性別" => "メス", "年齢" => "5才"], 30 ["ID" => 4, "名前" => "ジョン", "性別" => "オス", "犬種" => "秋田犬"], 31 ["ID" => 5, "名前" => "ボブ", "年齢" => "3才", "犬種" => "シェパード", "性別" => "オス"], 32]; 33$keys = array_keys($data); 34var_dump($keys); 35 36echo "</pre>\n";
補足情報(FW/ツールのバージョンなど)
出力は以下の通りです
array (size=3)
0 => string 'ID' (length=2)
1 => string '氏名' (length=6)
2 => string '役職' (length=6)
array (size=4)
0 => string 'ID' (length=2)
1 => string '名前' (length=6)
2 => string '犬種' (length=6)
3 => string '性別' (length=6)
このようにすべて抽出できていません
もし、難しいとか、この記法ではまずいとかあれば
なぜそうなのかを教えていただけると幸いです。