如何从关联数组值中拆分变量?

时间:2018-02-02 12:30:49

标签: php while-loop associative-array

我的帖子数组如下

array(106) {  
    ["service1"] => string(2) "No" 
    ["in_house1"]=> string(2) in"  
    ["service2"]=>  string(2) "No"  
    ["in_house2"]=> string(2) "in"  
    ["service3"]=>  string(2) "No"  
    ["in_house3"]=> string(2) "in" 
    ...
}

我想使用While循环插入这些值。 我该如何拆分数组变量?

例如:我希望将["service1"]拆分为service.$i

你能否提出任何解决方案。

3 个答案:

答案 0 :(得分:2)

似乎没有简单的快捷方式..你可以简单地做一个循环

$service=array();
for ($i=1;isSet($_POST["service".$i]);$i++)
    $service[$i] = $_POST["service".$i];

答案 1 :(得分:0)

正如@FirstOne所说,你的问题有点不清楚。但我会尝试用你的问题标签来解释它。

我认为您正在寻找针对此问题发布的答案: How to loop through an associative array and get the key?

所以要重新编写答案代码到你的案例:

foreach ($arr as $key => $value) {
    echo "Item: " . $key . " Status:" . $value;
}

只需遍历通过post获得的数组并写入项目名称和状态/值。因此,在foreach中,您可以选择使用关联数组的键和值来执行任何操作。

因此,要按照您的意愿将它们分开,可以使用正则表达式模式将名称和数字与项目名称分开,然后根据该值将值分配给变量或单独的数组。

答案 2 :(得分:0)

我认为您错过了HTML表单格式的内容。因为你要做的是发送HTML" array"数据

您可以通过在输入名称中添加[]作为后缀来执行此操作。

<input type="checkbox" name="services[]" value="1" />
<input type="checkbox" name="services[]" value="2" />

然后,您可以使用以下命令检索POST数组:

<?php
foreach($_POST['services'] as $service){
  echo $service;
}