0

これは非常に簡単に行う必要がありますが、うまくいかないようです。私のコード:

// a, b, c are true or false
$arr = array($a, $b, $c);
foreach ($arr as $value) {
    if ($value == "false") {
        $value = 0;
    }
    elseif ($value == "true") {
        $value = 1;
    }
}

// Now I want $a to be either 0 or 1. Right now $value is 0 or 1.
echo $a; -> true/false
echo $value; -> 0/1

では、どうすれば $a 0/1 を作成し、次回は $b 0/1 などにできますか?

4

4 に答える 4

2

これを試して:

// Callback function, pass reference to item in array
function callback(&$val)
{
    // If $val is true, make it 1, else make it 0
    $val = $val ? 1 : 0;
}

$array = array(true, true, false);

array_walk($array, 'callback');

print_r($array);
// Output: Array ( [0] => 1 [1] => 1 [2] => 0 )
于 2013-08-24T13:08:07.390 に答える
1
$arr = array_map('intval', array($a, $b, $c));

$arr には、$a、$b、および $c の整数値が含まれます。

于 2013-08-24T12:51:47.987 に答える
0

Foreach ループは、キー/値を参照として使用できます。

$arr = array($a, $b, $c);
foreach ($arr as &$value) {
    $value = ($value == "true") ? 1 : 0;
}
于 2013-08-24T13:17:36.440 に答える