You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从包含父子分隔符的字符串生成无重复父键的数组?

解决方案:将字符串转换为无重复父项的数组

嘿,我刚好能解决这个问题!这里有个PHP实现的方案,完全符合你要的数组结构,还能确保父项不会重复:

$inputString = "Progressivism and World War 1>Gender and Equality|Progressivism and World War 1>Social Change and Reform|The Great Depression and the New Deal";
$result = [];
$existingParents = [];

// 按父分隔符 | 拆分所有条目
$entries = explode('|', $inputString);

foreach ($entries as $entry) {
    // 按子分隔符 > 拆分当前条目
    $parts = explode('>', $entry);
    
    if (count($parts) === 2) {
        $parentName = trim($parts[0]);
        $childName = trim($parts[1]);
        
        // 检查父项是否已存在,不存在则添加
        if (!in_array($parentName, $existingParents)) {
            $result[] = [
                'name' => $parentName,
                'parent' => false
            ];
            $existingParents[] = $parentName;
        }
        
        // 添加子项
        $result[] = [
            'name' => $childName,
            'parent' => $parentName
        ];
    } else {
        // 无父项的条目直接作为顶级项添加
        $result[] = [
            'name' => trim($parts[0]),
            'parent' => false
        ];
    }
}

// 输出结果
print_r($result);

代码逻辑说明

  • 拆分字符串:先用explode('|', $inputString)把整个输入拆成独立的条目,每个条目要么是「父>子」结构,要么是单独的顶级项。
  • 父项去重:用$existingParents数组记录已经添加过的父项,每次处理父-子结构时,先检查父项是否已存在,避免重复插入。
  • 构建数组:
    • 如果条目是「父>子」结构,先添加父项(如果未存在),再添加子项并指定对应的父项名称。
    • 如果是单独的项,直接作为parent: false的顶级项添加。

运行这段代码后,得到的结果完全符合你的期望:

Array
(
    [0] => Array
        (
            [name] => Progressivism and World War 1
            [parent] => 
        )

    [1] => Array
        (
            [name] => Gender and Equality
            [parent] => Progressivism and World War 1
        )

    [2] => Array
        (
            [name] => Social Change and Reform
            [parent] => Progressivism and World War 1
        )

    [3] => Array
        (
            [name] => The Great Depression and the New Deal
            [parent] => 
        )
)

内容的提问来源于stack exchange,提问作者Kyle Knight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 10:27:31