php – 递归获取数组的键,并创建下划线分隔的字符串
发布时间:2020-12-13 16:31:57 所属栏目:PHP教程 来源:网络整理
导读:现在我有一个数组有一些信息,我需要从它创建一个表.例如 Student{ [Address]{ [StreetAddress] ="Some Street" [StreetName] = "Some Name" } [Marks1] = 100 [Marks2] = 50 } 现在我想创建数据库表,其中包含字段名称为: Student_Address_StreetAddressStud
现在我有一个数组有一些信息,我需要从它创建一个表.例如
Student{ [Address]{ [StreetAddress] =>"Some Street" [StreetName] => "Some Name" } [Marks1] => 100 [Marks2] => 50 } 现在我想创建数据库表,其中包含字段名称为: Student_Address_StreetAddress Student_Address_StreetName Student_Marks1 Student_Marks2 它应该是递归的,所以从数组的任何深度,它可以创建我的格式的字符串.
您可以使用标准PHP库(
SPL)中的
RecursiveArrayIterator和
RecursiveIteratorIterator(以递归方式遍历数组),使此作业相对无痛.
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)); $keys = array(); foreach ($iterator as $key => $value) { // Build long key name based on parent keys for ($i = $iterator->getDepth() - 1; $i >= 0; $i--) { $key = $iterator->getSubIterator($i)->key() . '_' . $key; } $keys[] = $key; } var_export($keys); 上面的例子输出如下: array ( 0 => 'Student_Address_StreetAddress',1 => 'Student_Address_StreetName',2 => 'Student_Marks1',3 => 'Student_Marks2',) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |