如何在php中将数组值字符串转换或转换为boolean

时间:2018-06-06 06:19:09

标签: php laravel

我正在使用Laravel ACL。在每个角色中都有权限组。我使用复选框表示所有权限。当我提交表单时,它会返回一个这样的权限数组。

{
read: "true",
create: "true",
delete: "false",
update: "false"
}

数组值显示为double quotes字符串,但我希望它为boolean 如何将数组值字符串转换为布尔值。

@foreach($role->permissions as $key=>$value)

           <td>
           <input type="hidden" name="permission[{{$key}}]" class="role" value="false" {{ $value==0 ? 'checked' : '' }}>
           <input type="checkbox" name="permission[{{$key}}]" class="role" value="true" {{ $value==1 ? 'checked' : '' }}>
            </td>
@endforeach

我想像这样数组值。

{
read: true,
create: true,
delete: false,
update: false
}

3 个答案:

答案 0 :(得分:0)

HTML双引号值。如果你的价值观永远是真实的&#34;或&#34;假&#34;然后你可以专门检查&#34; true&#34;。

// change your json into an array
$values = json_decode($yourValues, true) ;

// loop through and check for "true"
foreach($values as $key=>$value) {
    $values[$key] = ($value == "true") ;
}

// if you need it as json again
$yourValues = json_encode($values) ;

答案 1 :(得分:0)

对于你的情况,

@foreach($role->permissions as $key=>$value)
    <td>
        <input type="hidden" name="permission[{{$key}}]" class="role" value="false" {{ (boolean)$value ? 'checked' : '' }}>
        <input type="checkbox" name="permission[{{$key}}]" class="role" value="true" {{ (boolean)$value? 'checked' : '' }}>
     </td>
@endforeach

试试这个

<强> ####编辑####

$data=$_POST[];
foreach($data as $record){
    $record=(boolean)$record;
   //now $record is boolean 
}

答案 2 :(得分:0)

试试这个

@foreach($role->permissions as $key=>$value)

           <td>
           <input type="hidden" name="permission[{{$key}}]" class="role" value=false {{ $value=='false' ? 'checked' : '' }}>
           <input type="checkbox" name="permission[{{$key}}]" class="role" value=true {{ $value=='true' ? 'checked' : '' }}>
            </td>
@endforeach