如何在Laravel中获取和更改元素数组的值?

4

我有两个数组:

$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]

5个回答

4
在 Laravel 5 或以上的版本中,你可以这样做:
只需将一个数组传递给此函数,并使用点号表示嵌套数组。
use Illuminate\Support\Arr;
Arr::set($data, 'person.name', 'Calixto');

您也可以使用这些 Laravel 辅助函数:

$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200, false);

更多详细信息请查看 Laravel 文档: Laravel 文档 - 助手函数


以下是如何撰写一个好的回答?的一些指南。这个提供的答案可能是正确的,但它可以从解释中受益。仅有代码的答案不被认为是“好”的答案。来自审核 - Trenton McKinney
抱歉,我修改了我的答案。希望现在可以有所帮助,谢谢。 - Deividson Calixto

0

尝试这段代码

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

echo $array_1;

我的上面的代码只是一个例子,$array1 不能被改变。实际上,结构体的$array_1和结构体的$array_2是不同的。 - rome 웃

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

// 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  
    }
    else
    {
        //do nothing
    }
    $index++;

}

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

我的上面的代码只是一个例子,$array_1将被多次访问。但这段代码可能会对我有所帮助,当访问$array_1时,变量$index将被设置。 - rome 웃

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/zh/function.array-map.php


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接