加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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',)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读