【问题标题】:Convert a string of comma separated values to true/false array将一串逗号分隔值转换为真/假数组
【发布时间】:2020-07-22 14:33:52
【问题描述】:

我正在尝试找到一种方法来获取分隔值并将它们转换为具有 false 或 true 的数组


$idValues = '111111,222222,333333';
$lubuvnaIDs = explode(",", $idValues);
$groups = '';

foreach($lubuvnaIDs as $row ){
        $groups .= $row .'=>'. true;
}

$newGroups = array($groups);


$dataSub = array (
        'interests' => $newGroups,
);

$newGroups 的最终输出应如下所示:

$newGroups = array( 
        '111111'    => true,
        '222222'    => true,
        '333333'    => true
);

【问题讨论】:

  • 你想要'true'(字符串)还是true1
  • 它需要像关注Array ( '111111' => true '222222' => true '333333' => true )
  • 唯一的方法是输入一个文本$newGroups[$row] = 'true';

标签: php arrays string foreach


【解决方案1】:

您可以将array_fill_keys()explode() 中的值列表一起使用,而不是循环。将初始值设置为true...

$newGroups = array_fill_keys(explode(",", $idValues), true);

【讨论】:

    【解决方案2】:

    如何循环遍历这些值并将它们添加到数组中:

    $idValues = '111111,222222,333333';
    $lubuvnaIDs = explode(",", $idValues);
    
    $newGroups = [];
    foreach ($lubuvnaIDs as $id) {
        $newGroups[$id] = true;
    }
    
    

    【讨论】:

    • 这样我得到Array ( [111111] => 1 [222222] => 1 [333333] => 1 )
    • 必须是Array ( '111111' => true '222222' => true '333333' => true )
    • 这取决于你用什么来显示它。 print_r 会这样显示它,因为它显示键/值对。使用您自己的最终输出示例和 print_r 来查看与我的答案相同的结果。 [111111] => 1'111111' => true 基本相同,这取决于您在此之后需要它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多