您可以将值转换为布尔值 (c.f. http://www.php.net/manual/en/language.types.type-juggling.php):
foreach($orders as $order) {
array_push($list, array(
$order['name'],
$order['email'],
(boolean) $order['buyer_accepts_marketing']
));
}
仅供参考,array_push 的快捷方式是:
foreach($orders as $order) {
$list[] = array(
$order['name'],
$order['email'],
(boolean) $order['buyer_accepts_marketing']
);
}
我通常觉得它看起来更好:)
如果你想做更复杂的逻辑来获取你的布尔值,你可以为它创建一个新变量:
foreach($orders as $order) {
$buyer_accepts_marketing = false;
if( $order['buyer_accepts_marketing'] ) $buyer_accepts_marketing = true;
array_push($list, array(
$order['name'],
$order['email'],
$buyer_accepts_marketing
));
}
如果您想将 buyer_accepts_marketing 值设置为字符串值“true”或“false”,请执行以下操作:
foreach($orders as $order) {
$buyer_accepts_marketing = "false";
if( $order['buyer_accepts_marketing'] ) $buyer_accepts_marketing = "true";
array_push($list, array(
$order['name'],
$order['email'],
$buyer_accepts_marketing
));
}
请注意,字符串“true”不是布尔值,“false”也不是。例如:
if( "true" == true ) echo "It's true";
会回应“这是真的”。但是,也会:
if( "false" == true ) echo "It's true";
这是因为任何未设置为 "0" 或 "" 的字符串都将评估为 true。