Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP中生成一个数组_Php - Fatal编程技术网

从PHP中生成一个数组

从PHP中生成一个数组,php,Php,我有很多复选框。我想把它们的值放到一个逗号分隔的数组中。 如果取消选中复选框,则值将为空,因此: 酒吧、停车场、电视等 我该怎么做?制作一个数组后,我将提交到数据库中 <p> <label for="meta_box_check_bar">bar</label> <input type="checkbox" id="meta_box_check_bar" name="meta_box_check_bar" valu

我有很多复选框。我想把它们的值放到一个逗号分隔的数组中。 如果取消选中复选框,则值将为空,因此:

酒吧、停车场、电视等

我该怎么做?制作一个数组后,我将提交到数据库中

    <p>
        <label for="meta_box_check_bar">bar</label>
        <input type="checkbox" id="meta_box_check_bar" name="meta_box_check_bar" value="bar" />

        <label for="meta_box_check_parking">parking</label>
        <input type="checkbox" id="meta_box_check_parking" name="meta_box_check_parking" value="parking" />

        <label for="">accessible-for-disabled</label>
        <input type="checkbox" id="meta_box_check_accessible-for-disabled" name="meta_box_check_accessible-for-disabled" value="accessible-for-disabled" />

        <label for="">air-conditioning</label>
        <input type="checkbox" id="meta_box_check_air-conditioning" name="meta_box_check_air-conditioning" value="air-conditioning" />

        <label for="">frigobar </label>
        <input type="checkbox" id="meta_box_check_frigobar" name="meta_box_check_frigobar" value="frigobar" />

        <label for="">pets</label>
        <input type="checkbox" id="meta_box_check_pets" name="meta_box_check_pets" value="pets" />

        <label for="">phone</label>
        <input type="checkbox" id="meta_box_check_phone" name="meta_box_check_phone" value="phone" />

        <label for="">tv</label>
        <input type="checkbox" id="meta_box_check_tv" name="meta_box_check_tv" value="tv" />

        <label for="">typical-local-dishes</label>
        <input type="checkbox" id="meta_box_check_typical-local-dishes" name="meta_box_check_typical-local-dishes" value="typical-local-dishes" />
    </p>

酒吧
停车
残疾人无障碍
空调
弗里戈巴
宠物
电话
电视
典型的地方菜


将您的字段命名为checkbox[],然后在PHP中,您可以使用$\u get['checkbox']获得类似的数组。

对我来说,这听起来像是ajax的工作。我会考虑Dojo或jQuery来收集和传递数据。

< P>你应该给它们名称相同的名称,这样当你在名称上获取GET时,它会返回所有被检查的值的数组。 以下是您可以阅读的参考资料:

如果可能,我建议您在变量名中使用
[]
来传递数组并在PHP文件中检索它们的值。大概是这样的:

HTML

<p>
    <label for="meta_box_check_bar">bar</label>
    <input type="checkbox" id="meta_box_check_bar" name="array[]" value="bar" />

    <label for="meta_box_check_parking">parking</label>
    <input type="checkbox" id="meta_box_check_parking" name="array[]" value="parking" />

    <label for="">accessible-for-disabled</label>
    <input type="checkbox" id="meta_box_check_accessible-for-disabled" name="array[]" value="accessible-for-disabled" />

    <label for="">air-conditioning</label>
    <input type="checkbox" id="meta_box_check_air-conditioning" name="array[]" value="air-conditioning" />

    <label for="">frigobar </label>
    <input type="checkbox" id="meta_box_check_frigobar" name="array[]" value="frigobar" />

    <label for="">pets</label>
    <input type="checkbox" id="meta_box_check_pets" name="array[]" value="pets" />

    <label for="">phone</label>
    <input type="checkbox" id="meta_box_check_phone" name="array[]" value="phone" />

    <label for="">tv</label>
    <input type="checkbox" id="meta_box_check_tv" name="array[]" value="tv" />

    <label for="">typical-local-dishes</label>
    <input type="checkbox" id="meta_box_check_typical-local-dishes" name="array[]" value="typical-local-dishes" />
</p>

永远不要在一个数据库字段中放置多个ne信息。为什么不?在这种情况下,我不想用每行1-2个单词的条目填充数据库。如果你想用一个条来选择行,你需要用正则表达式或一些字符串进行全表扫描——这会降低你的性能。真的。我只需要抓取整个数组,然后用php将其分解。这会扼杀表演吗?所以我选择行的ID,我不需要单独选择条。这不会给他空值。他没有读到应该有空值的事实,很好。这不会给他空值。这些控件是客户端控件,服务器无法立即使用。无论哪种方式,您都必须有某种机制将数据从客户端的浏览器获取到托管服务器。Ajax和其他方法一样好。你应该阅读其他答案,帕根指出,大多数答案都忽略了一个事实,即请求者需要空值。@richardhsu,谢谢你的建议。但即使在这种情况下,他也可以比较PHP文件中传递的值,如果没有通过,他可以认为该字段是空的。这是我的意见,我会尝试用这个选项编辑我的答案。
<p>
    <label for="meta_box_check_bar">bar</label>
    <input type="checkbox" id="meta_box_check_bar" name="array[]" value="bar" />

    <label for="meta_box_check_parking">parking</label>
    <input type="checkbox" id="meta_box_check_parking" name="array[]" value="parking" />

    <label for="">accessible-for-disabled</label>
    <input type="checkbox" id="meta_box_check_accessible-for-disabled" name="array[]" value="accessible-for-disabled" />

    <label for="">air-conditioning</label>
    <input type="checkbox" id="meta_box_check_air-conditioning" name="array[]" value="air-conditioning" />

    <label for="">frigobar </label>
    <input type="checkbox" id="meta_box_check_frigobar" name="array[]" value="frigobar" />

    <label for="">pets</label>
    <input type="checkbox" id="meta_box_check_pets" name="array[]" value="pets" />

    <label for="">phone</label>
    <input type="checkbox" id="meta_box_check_phone" name="array[]" value="phone" />

    <label for="">tv</label>
    <input type="checkbox" id="meta_box_check_tv" name="array[]" value="tv" />

    <label for="">typical-local-dishes</label>
    <input type="checkbox" id="meta_box_check_typical-local-dishes" name="array[]" value="typical-local-dishes" />
</p>
// Prevent errors when nothing is checked
if( ! is_array($_POST['array']) )
    $_POST['array'] = array();

// Possible items
$possible_item[] = "bar";
$possible_item[] = "parking";
$possible_item[] = "accessible-for-disabled";
$possible_item[] = "air-conditioning";
$possible_item[] = "frigobar";
$possible_item[] = "pets";
$possible_item[] = "phone";
$possible_item[] = "tv";
$possible_item[] = "typical-local-dishes";

// Starting output string
$output = '';

// Loop the possible items
foreach($possible_item as $value)
{
    // If item is in POST array, add to the output string, else put just comma if needed
    if( in_array($value, $_POST['array']) )
        $output .=  ( empty($output) ? '' : ',' ) . $value;
    else
        $output .=  ( empty($output) ? '' : ',' );
}

echo $output;