php - 如何获取数组中的逗号分隔符(,)值?

标签 php arrays

这是我的数组,即 $data。

function generateQuestion($userdata) {
$module_name = $userdata->module_name;
$module = new Module();
$module->data['*'] = '';
$module->where = " module_name = '" . $module_name . "' and is_delete='0'";
$module->action = "get";
$module_res = $module->process();
$data = array();
if($module_res['count'] > 0) {
    foreach ($module_res['res'] as $module_key => $module_value) {
        $cat = new Category();
        $cat->data['*'] = '';
        $cat->where = "que_module_id='".$module_value['module_id']."' and is_delete='0'";
        $cat->action = "get";
        $cat_res = $cat->process();

        foreach ($cat_res['res'] as $cat_key => $cat_value) {
            $question = new Question();
            $question->data['*'] = '';
            $question->where = "question_cat_id='".$cat_value['que_cat_id']."' and is_delete='0'";
            $question->action = "get";
            $question_res = $question->process();
            foreach ($question_res['res'] as $question_key => $question_value) {
                $que_ans = '';
                if($question_value['question_ans'] == 1) {
                    $que_ans = 'Yes';
                } elseif($question_value['question_ans'] == 2) {
                    $que_ans = 'No';
                } else {
                    $que_ans = 'N/A';
                }
                $options = explode(',',$question_value['question_options']);

                $data[$module_value['module_name']][$cat_value['que_cat_id']][$question_value['question_id']] = array(
                    'question_name' => $question_value['question_name'],
                    'question_ans'  => $que_ans,
                    'question_ans_comments' => $question_value['question_ans_comments'] == ''?'None':$question_value['question_ans_comments'],
                    'question_options' => explode(',',$question_value['question_options'])
                );
            }
        }
    }
    print_r($data);die;
    //echo json_encode(array("data"=>$data,"status" => "success", 'message' => 'Question Listing'));
} else {
    echo json_encode(array("status" => "error", 'message' => 'Module Not Found'));
}
}
  $data[$module_value['module_name']][$cat_value['que_cat_id']]
 [$question_value['question_id']] = array(
                    'question_name' => $question_value['question_name'],
                    'question_ans'  => $que_ans,
                    'question_ans_comments' => $question_value['question_ans_comments'] == ''?'None':$question_value['question_ans_comments'],
                    'question_options' => explode(',',$question_value['question_options'])
                );

上述数组的输出:

Array
(
[Prestart Hand Tools/Electric Power Tool Safety Checks] => Array
    (
        [3] => Array
            (
                [1] => Array
                    (
                        [question_name] => machine runs correctly no 
                          abnormal noise
                        [question_ans] => No
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [0] => 1
                                [1] => 2
                                [2] => 3
                                [3] => 4
                            )

                    )

                [4] => Array
                    (
                        [question_name] => abc
                        [question_ans] => Yes
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [0] => 1
                            )

                    )

            )

        [5] => Array
            (
                [2] => Array
                    (
                        [question_name] => machine runs correctly no abnormal noise
                        [question_ans] => No
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [0] => 1
                                [1] => 2
                                [2] => 3
                                [3] => 4
                            )

                    )

            )

        [6] => Array
            (
                [3] => Array
                    (
                        [question_name] => machine runs correctly no abnormal noise
                        [question_ans] => No
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [0] => 1
                                [1] => 2
                                [2] => 3
                                [3] => 4
                            )

                    )

            )

    )

)

我的数据库字段存储 question_options,如 1,2,3,4

enter image description here

我想要这样的数组

Array
(
[Prestart Hand Tools/Electric Power Tool Safety Checks] => Array
    (
        [3] => Array
            (
                [1] => Array
                    (
                        [question_name] => machine runs correctly no 
                           abnormal noise
                        [question_ans] => No
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [1] => 'Yes'
                                [2] => 'No'
                                [3] => 'N/a'
                                [4] => 'comments'
                            )

                    )

                [4] => Array
                    (
                        [question_name] => abc
                        [question_ans] => Yes
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [1] => 'Yes'
                            )

                    )

            )

        [5] => Array
            (
                [2] => Array
                    (
                        [question_name] => machine runs correctly no 
                             abnormal noise
                        [question_ans] => No
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [1] => 'Yes'
                                [2] => 'No'
                                [3] => 'N/a'
                                [4] => 'comments'
                            )

                    )

            )

        [6] => Array
            (
                [3] => Array
                    (
                        [question_name] => machine runs correctly no 
                          abnormal noise
                        [question_ans] => No
                        [question_ans_comments] => None
                        [question_options] => Array
                            (
                                [1] => 'Yes'
                                [2] => 'No'
                                [3] => 'N/a'
                                [4] => 'comments'
                            )

                    )

            )

    )

)

请帮我解决这个问题。

最佳答案

试试这个。

$options = array(1,2,4); // array of explode(',',$question_value['question_options'])

    function getOptions($options){
        $temparray = array();
        $option_fix_array = array(
                    1 => 'Yes',
                    2 => 'NO',
                    3 => 'N/A',
                    4 => 'Comments', 
                );
        foreach($options as $value){
            if(array_key_exists($value,$option_fix_array)){
                $temparray[$value] = $option_fix_array[$value];
            }
        }
        return $temparray;
    }

    print_r(getOptions($options));

我认为这会对您有所帮助。

关于php - 如何获取数组中的逗号分隔符(,)值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825723/

相关文章:

php - Zend Framework 2 查询中的双引号

php - Laravel 帖子和标签 : has many through relationship?

php - 如何操作字符串以便在数学表达式中显式显示隐式乘法?

arrays - 索引匹配不同日期和值之间的搜索

python - 如何将以下 Python 字符串拆分为字符串列表?

c - 将数组值传递给另一个函数时出现缓冲区溢出问题

php - 如何使用多个外键查询数据透视表 Laravel 5 Eloquent

javascript - 基于 PHP 的大数据集表单自动完成

java - 如何在不使用 Array.sort :Java 的情况下按字母顺序对数组进行排序

c++ - 根据我的测试,[更有效的 C++] 中的第 3 项似乎无效