PHP数组,如果ID重复,则删除并重复

乔希

我有这样的数组

array(2) {
["sys_ID"]=> string(32) "ab0ce921dba8a810f6db3892399619d9" ["sites"]=> array(5) {
    [0]=> array(2) {
        ["sys_ID"]=> string(32) "448ce5a1dba8a810f6db3892399619ba" ["service"]=> string(4) "IDMB" } [1]=> array(2) {
        ["sys_ID"]=> string(32) "448ce5a1dba8a810f6db3892399619ba" ["service"]=> string(4) "ODMB" } [2]=> array(2) {
        ["sys_ID"]=> string(32) "598ce5a1dba8a810f6db3892399619bc" ["service"]=> string(4) "IDMB" } [3]=> array(2) {
        ["sys_ID"]=> string(32) "876ce5a1dba8a810f6db38923996199f" ["service"]=> string(4) "IDMB" } [4]=> array(2) {
        ["sys_ID"]=> string(32) "876ce5a1dba8a810f6db38923996199f" ["service"]=> string(4) "ODMB" } } } 

如果有重复项,['sys_ID']我想更改第一个,['service'] => "IDMB,ODMB"然后删除重复项值,这样就只有1个。因此上述内容将变为

    array(2) {
["sys_ID"]=> string(32) "ab0ce921dba8a810f6db3892399619d9" ["sites"]=> array(5) {
    [0]=> array(2) {
        ["sys_ID"]=> string(32) "448ce5a1dba8a810f6db3892399619ba" ["service"]=> string(4) "IDMB,ODMB" } [1]=> array(2) {
        ["sys_ID"]=> string(32) "598ce5a1dba8a810f6db3892399619bc" ["service"]=> string(4) "IDMB" } [2]=> array(2) {
        ["sys_ID"]=> string(32) "876ce5a1dba8a810f6db38923996199f" ["service"]=> string(4) "IDMB,ODMB" } ]} } 

使第一个数组获取POST值;

<?php    
foreach ($_POST['services'] as $item) {
            $parts = explode(',', $item);
            $siteID = $parts[1];
            $services = $parts[0];
            $data['sites'][] = [
                    'sys_ID'  => $siteID,
                    'service' => $services
            ];
        }
?>
绝对不是拉法尔

将生成数组的方式更改为如下所示:

<?php
$data = [
    'sites' => [],
];
foreach ($_POST['services'] as $item) {
    // Gather your data
    $parts = explode(',', $item);
    $siteID = $parts[1];
    $services = $parts[0];
    
    // Set flag to remember whether you need to add it
    $add = true;
    
    // Loop through existing data and check if the sys_ID already exists
    foreach ($data['sites'] as &$dataDetails) {
        
        // It does ... so just append your service
        if ($dataDetails['sys_ID'] === $siteID) {
            $add = false;
            $dataDetails['service'] .= ',' . $services;
            break;
        }
        
    }
    
    // Couldn't find the sys_ID => Add new entry
    if ($add) {
        $data['sites'][] = [
            'sys_ID'  => $siteID,
            'service' => $services
        ];
    }
}
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章