2015-09-25 40 views
2

我有2数组:如何获取和更改Laravel中元素数组的值?

$array_1 = [1,2,3,1,2];

和:

$array_2 = [0,0,0,0,0];

我想改变的$array_2的值,因此它会显示如果在$array_1元素是数字1或2只要。

foreach($array_1 as $item) 
{ 
    if($item = 1 || $iten == 2) 
    { 
     $index = ...;//how to get index of this element 
     $array_2[$index] = 1; //I don't sure this syntax is right 
    } 
} 

输出$array_2应该是这样的:$array_2 = [1,1,0,1,1]

回答

1
<?php 

// your code goes here 
$array_1 = [1,2,3,1,2]; 

$array_2 = [0,0,0,0,0]; 
$index = 0; 
foreach($array_1 as $item) 
{ 
    if($item == 1 || $item == 2) 
    { 
     //how to get index of this emlement 
     $array_2[$index] = 1; //I don't sure this syntax is right 
     $index++; 
    } 
    else 
    { 
     //do nothing 
     $index++; 
    } 
} 

echo "<pre>"; 
print_r($array_2); 
echo "</pre>"; 
+0

例如和工作代码参考链接http://ideone.com/KJcDfc –

+0

我上面的代码只是例子,$ array_1将访问多次。但是这段代码可能会帮助我,当$ array_1被访问时,变量$ index会被设置。 –

0

试试这个代码

$array_1 = array(1,2,3,1,2); 
foreach($array_1 as &$item) 
{ 
    if($item = 1 || $item == 2) { 
    $item = 1; 
    } 
} 

echo $array_1; 
+0

我上面的代码才是例如,$阵列1不能被改变。其实,结构的$ array_1和结构的$ array_2是不同的 –

0

我猜你只需要更换其他项目比1,2比0,纠正我,如果我错了。

$array_3 = array(); 

foreach ($array_1 as $key => $item) 
{ 
    if($item == 1 || $item == 2) 
    { 
     $array_3[$key] = $item; 
    } 
    else 
    { 
     $array_3[$key] = 0; 
    } 
} 
0

下面的PHP代码可能会做你想要什么:

<?php 
$valid = [1, 2]; // allows you to extend a bit later 
$array_1 = [1,2,3,1,2]; 

$array_2 = array_map(function($var) use ($valid) { 
    return in_array($var, $valid) ? 1 : 0; 
}, $array_1); 

print_r($array_2); // [1, 1, 0, 1, 1] 

看看在array_map功能在http://php.net/manual/en/function.array-map.php

相关问题