设置阵列阵列中的元素
问题描述:
如果汽车阵列里面的第三个元素是真的,我想设置其他元素为真。如何实现它?设置阵列阵列中的元素
<?php
$cars = array
(
array(1,1,'f'),
array(2,2,'f'),
array(3,3,'t'),
array(4,4,'f')
);
foreach($cars as $keys){
if($keys[2]=='t')
$count=1;
}
foreach($cars as $keys){
if($count==1)
$keys[2] = 't';
}
print_r($cars);
?>
答
只要改变两两件事,如下所述,尝试:
$cars = array
(
array(1,1,'f'),
array(2,2,'f'),
array(3,3,'t'),
array(4,4,'f')
);
$count = 0; // declare $count
foreach($cars as $keys){
if($keys[2]=='t')
$count=1;
}
foreach($cars as $key=>$keys){
if($count==1)
$cars[$key][2] = 't'; // change value to t like this
}
输出:
Array
(
[0] => Array
(
[0] => 1
[1] => 1
[2] => t
)
[1] => Array
(
[0] => 2
[1] => 2
[2] => t
)
[2] => Array
(
[0] => 3
[1] => 3
[2] => t
)
[3] => Array
(
[0] => 4
[1] => 4
[2] => t
)
)
答
你几乎关闭,才使这一变化,使用参考符号&
实际变化
from
foreach($cars as $keys){
到
foreach($cars as &$keys){
答
$exists= false;
foreach($cars as $car)
{
if($car[2] == 't')
{
$exists= true;
}
}
if($exists)
{
for($i=0; $i<count($cars); $i++)
{
$cars[$i][2] = 't';
}
}
答
这儿有你
<?php
$cars = array(
array(1,1,'f'),
array(2,2,'f'),
array(3,3,'t'),
array(4,4,'f')
);
if(in_array('t', array_column($cars, 2))){
$cars = array_map(function($v){
$v[2] = 't';
return $v;
}, $cars);
}
你为什么要使用一个名为 “F” 和一个名为strnig“串解t“而不是布尔值true和false? – Xatenev
f和t是没有布尔类型的字符串@Xatenev – art
确切地说,问题是*为什么*您使用f'和t''而不是'true'和'false'。 – deceze