按整数拆分数组键

时间:2015-06-29 14:12:08

标签: php arrays

我有一个这样的数组:

array(10) { 
    [1]=> string(10) "Question 1"
    ["1a"]=> string(7) "option1"
    ["1b"]=> string(7) "option2"
    ["1c"]=> string(7) "option3"
    ["1d"]=> string(7) "option4"
    [2]=> string(10) "Question 2"
    ["2a"]=> string(7) "option1"
    ["2b"]=> string(7) "option2"
    ["2c"]=> string(7) "option3"
    ["2d"]=> string(7) "option4"
}

我想分割数组并回显<li>标记之间的值。问题是,当我尝试循环遍历数组键时,我无法弄清楚如何在数组键中对每个整数进行排序,并且它在单独的<li>标记之间回应所有元素而不是一个包含 1 的五个值,一个用于包含2的键的五个值,依此类推。

这是我目前使用的php代码:

$form = array();

    foreach($_POST as $key => $val) {

    $q_answers = array();

    if (is_numeric($key)) {

        $question = trim(htmlspecialchars($val));

    } else if (is_string($key) && !empty($val)) {

        $q_answers[] = '<input type="button" value="'.trim(htmlspecialchars($val)).'" data-skip="0" />';

    }
    $form[] = $question.' '.implode(' ', $q_answers);

}

    $result = '
<ul>
    <li>'.implode('</li>
    <li>', $form).'</li>
</ul>';

}

以下是我正在寻找的一个例子:

阵列:

Array(10) {
    [1]=> "Question 1"
    [1a]=> "option1"
    [1b]=> "option2"
    [1c]=> "option3"
    [1d]=> "option4"
    [2]=> "Question 2"
    [2a]=> "option1"
    [2b]=> "option2"
    [2c]=> "option3"
    [2d]=> "option4"
}

输出:

<ul>
    <li>Question 1: option1 option2 option3 option4</li>
    <li>Question 2: option1 option2 option3 option4</li>
</ul>

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

$array = {};
$options1 = {}
$options2 = {}
$options1[1a] = "option1";
$options1[1b] = "option2";
$options1["Name"] = "Question 1";
$options2[2a] = "option1";
$options2[2b] = "option2";
$options2["Name"] = "Question 2";
$array[1] = $options1;
$array[2] = $options2;
echo("<ul>");
foreach ($array as $option){
echo("<li>" . $option["Name"] . ":");
foreach ($optionas $suboption){
echo(" " . $suboption);
}
echo("</li>");
}
echo("</ul>");

您可以使用函数来快速构建这些数组:)