什么';在PHP中,在现有数组中插入一个新数组元素的问题


What's the issue in inserting a new array element in existing array in PHP?

我有一个多维数组。现在我想在这个数组中插入一个新的键值组合。但我做不到。你能帮我实现这一点吗?为了供您参考,我在下面给出了我的代码以及现有的多维阵列:

代码:$practice_sheet_set_data/现有多维数组//获取要插入上述数组的值的代码/

$sql  = " SELECT st.staff_full_name FROM ".TBL_STAFF." AS st JOIN ".TBL_PRACTICE_SHEET." AS ps ";
            $sql .= " ON st.staff_id=ps.practice_sheet_created_staff_id WHERE ps.practice_sheet_id= ".$practice_sheet_id;
            $this->mDb->Query( $sql);
            $practice_sheet_created_staff_data = $this->mDb->FetchArray(MYSQL_FETCH_SINGLE);

从上面的代码中,我得到了一个变量$practice_sheet_created_staff_data中的一维数组,但无法将其值插入到上面的数组中。我也试过array_push和array_merge。下面给出了两个阵列:

$practice_sheet_data
Array
(
    [0] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 505
            [topic_name] => Ratio and Proportion
        )
    [1] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 508
            [topic_name] => Inequalities
        )
    [2] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 509
            [topic_name] => Simple and Compound Interest including Annuity - Applications
        )
    [3] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 511
            [topic_name] => Sequence and Series - Arithmatic and Geomatric Progression
        )
    [4] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 517
            [topic_name] => Statistical Description of Data
        )
    [5] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 519
            [topic_name] => Correlation and Regression
        )
    [6] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 520
            [topic_name] => Probability & Mathematical Expectation
        )
    [7] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 521
            [topic_name] => Theoritical Distributions
        )
)
$practice_sheet_created_staff_data

Array
(
    [staff_full_name] => Amol Patil
)

我想在上一个数组中创建一个新的键值对,作为[staff_full_name] => Amol Patil

如果您推送名称,您可能会在foreach上遇到问题。试试这个:

$new_array = array($practice_sheet_created_staff_data['staff_full_name'] => $practice_sheet_data);

你可以用var_dump($new_array[0]);var_dump($new_array['name']); 获得

新输出类似这样的内容

Array (
[Amol Patil] => Array
    [0] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 505
            [topic_name] => Ratio and Proportion
        )
    [1] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 508
            [topic_name] => Inequalities
        )
    [2] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 509
            [topic_name] => Simple and Compound Interest including Annuity - Applications
        )
    [3] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 511
            [topic_name] => Sequence and Series - Arithmatic and Geomatric Progression
        )
    [4] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 517
            [topic_name] => Statistical Description of Data
        )
    [5] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 519
            [topic_name] => Correlation and Regression
        )
    [6] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 520
            [topic_name] => Probability & Mathematical Expectation
        )
    [7] => Array
        (
            [topic_no_questions] => 5
            [subject_id] => 21
            [subject_name] => CPT Quantitative Aptitude
            [topic_id] => 521
            [topic_name] => Theoritical Distributions
        )
)

如果你想插入一个新的密钥对值,你尝试过吗

foreach($practice_sheet_created_staff_data as $key => $value)
 {
  $practice_sheet_created_staff_data[$key][staff_full_name] = 'Amol Patil'
 }

如果要将$practice_sheet_created_staff_data插入数组,则:

$practice_sheet_data[] = $practice_sheet_created_staff_data;
// will give you
// $practice_sheet_data[8] = array('staff_full_name' => 'Amol Patil');

在每个子数组中插入,然后:

foreach ($practice_sheet_data as $key => $array) {
  $practice_sheet_data[$key]['staff_full_name'] = $practice_sheet_created_staff_data['staff_full_name'];
}
// will give you 
// $practice_sheet_data[0] = array(... your other elements..., 'staff_full_name' => 'Amol Patil');

如果您想更改结果数组,请尝试此操作。

foreach($practice_sheet_created_staff_data as &$p) {
    $p['staff_full_name'] = 'Amol Patil';
    // $p['topic_id'] = 0; // if you wanna the other value.
}

您必须键入&它可以更改数组内的值。