在不删除唯一键的情况下翻转阵列?

时间:2015-11-04 09:40:16

标签: php arrays

我正在尝试设置用户权限,它们作为数组存储在数据库中..这是我的html表单的当前输出...

<tr>
  <td>
    <table width="100%" border=0 style="margin-top:20px;visibility:hidden;" id="vieweva">
      <tr>
        <td class="form" ><br>asdfjkl;asdfjkl;asdfjkl;</td>
      </tr>
    </table>
  </td>
</tr>

但我需要将其格式化为:

{
"where_to_buy": "true",
"spec_sheet": "true",
"dwg_access": "true",
"bim_access": "true",
"product_prices": "true",
"portal_access": "true",
"save_quote": "true",
"request_drawings": "true",
"place_order": "true",
"special_offer": "true"
}

如何停止或将我的html表单提交从字符串转换为真值或假值?

2 个答案:

答案 0 :(得分:4)

您可以像{/ p>一样使用array_mapecho json_encode(array_map(function($v) { if ($v == "true") { return true; } else { return false; } }, json_decode($json, true)));

{{1}}

答案 1 :(得分:1)

您可以使用array_walk

映射值

如果以后需要,您还可以添加超过true / false的

char *

编辑:同时进行,请参阅评论

// from json   
$yourArray = json_decode($yourJSON, true);

// map values
array_walk($yourArray, function(&$v) {
    $map = array(
        'true' => true,
        'false' => false
        // more as needed
    );

    if ( isset($map[$v]) ) {
        $v = $map[$v];
    }
});

// back to json
$output = json_encode($yourArray);