相关疑难解决方法(0)

按值删除数组项

我需要删除给定值的数组项:

if (in_array($id, $items)) {
    $items = array_flip($items);
    unset($items[ $id ]);
    $items = array_flip($items);
}
Run Code Online (Sandbox Code Playgroud)

可以用更短(更有效)的方式完成吗?

php arrays

164
推荐指数
9
解决办法
16万
查看次数

PHP:如何从数组中删除特定元素?

当我知道元素名称时,如何从数组中删除元素?例如:

我有一个数组:

$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
Run Code Online (Sandbox Code Playgroud)

用户输入 strawberry

strawberry 已移除.

完全解释:

我有一个数据库,用于存储用逗号分隔的项目列表.代码根据该选项所在的用户选择拉入列表.因此,如果他们选择草莓,他们会在每个条目中提取代码,而草莓位于其中,然后使用split()将其转换为数组.我想让他们从数组中删除用户选择的项目,例如草莓.

php arrays

147
推荐指数
6
解决办法
40万
查看次数

在php中将关联数组转换为其值的简单数组

我想转换数组:

Array ( 
[category] => category 
[post_tag] => post_tag 
[nav_menu] => nav_menu 
[link_category] => link_category 
[post_format] => post_format 
)
Run Code Online (Sandbox Code Playgroud)

array(category, post_tag, nav_menu, link_category, post_format)
Run Code Online (Sandbox Code Playgroud)

我试过了

$myarray = 'array('. implode(', ',get_taxonomies('','names')) .')';
Run Code Online (Sandbox Code Playgroud)

回声:

array(category, post_tag, nav_menu, link_category, post_format)
Run Code Online (Sandbox Code Playgroud)

所以我能做到

echo $myarray;
echo 'array(category, post_tag, nav_menu, link_category, post_format)';
Run Code Online (Sandbox Code Playgroud)

它打印完全相同的东西.

...但我不能$myarray在函数中使用代替手动输入的数组,因为函数不会将其视为数组或其他内容.

我在这里错过了什么?

php arrays associative-array

78
推荐指数
2
解决办法
8万
查看次数

如何在数组中查找值并使用PHP数组函数将其删除

如何查找数组中存在的值以及如何删除它.如果任何php内置数组用于执行此操作.删除后我需要顺序索引顺序.任何身体都知道请帮助我.

php arrays function built-in

53
推荐指数
5
解决办法
10万
查看次数

unset()不能正常使用PHP

我尝试了很多不同的方法,但我无法从数组中取消设置变量.我开始用一个字符串将它爆炸成一个数组,现在我要删除Bill.我错过了一些东西?我访问过php.net和我,仍然卡住了......

<!DOCTYPE html>
<html>
<head>
<title></title>

</head>
<body>

<?php


$names = "Harry George Bill David Sam Jimmy";

$Allname = explode(" ",$names);

unset($Allname['Bill']);

sort($Allname);

$together = implode("," ,$Allname);

echo "$together";
?>
</body>
</html>   
Run Code Online (Sandbox Code Playgroud)

php

9
推荐指数
1
解决办法
2万
查看次数

在ArrayObject中循环和取消设置时foreach中出现意外行为.项目被忽略

(底部的例子!!!)

我们刚刚将后端升级到PHP7,之后,我们在代码中发现了一个与ArrayObject相关的错误.

代码只是循环遍历Object的一个副本(类型为native ArrayObject).foreach按值迭代.

代码的目的是过滤一些您不需要的值.在示例中,如果迭代值为"2"或"3",则取消设置.我已经尝试使用迭代器而不是复制的值而没有迭代器.

结果:

- 迭代器

  • PHP 5.6:按预期工作,返回值是没有值"two"和"three"的数组
  • PHP 7:它只删除"两个"并且似乎没有评估值为"3"的项目(请参阅循环内的回显,它不打印"三")

- 没有迭代器

  • PHP 5.6:收到通知但按预期工作,返回值是没有值"two"和"three"的数组
  • PHP 7:它只删除"两个"并且似乎没有评估值为"3"的项目(请参阅循环内的回显,它不打印"三")

第一个循环=> $ key = 0,$ value ="one"//继续

第二个循环=> $ key = 1,$ value ="second"//未设置

第三循环=> $ key = 3,$ value ="四"// WTF?哪里是$ key = 2,$ value ="三"????

所以我无法理解发生了什么.我们的时间解决方案是迭代原始对象并从副本中取消设置.有谁知道PHP核心(或ArrayObject/ArrayIterator)中的哪个更改?我有搜索它,但有些人有foreach这个问题,迭代的项目是参考.

如果在PHP 5.6和7之间切换,则行为会发生变化.

示例1(使用迭代器)

$elements = new ArrayObject();
$elements->append('one');
$elements->append('two');
$elements->append('three');
$elements->append('four');

print_r($elements);

$clone = clone $elements;
$it = $clone->getIterator();

echo "\n------\n";
foreach ($it as $key => $value) {
    echo $key."\t=>\t".$value."\n";
    if ($value …
Run Code Online (Sandbox Code Playgroud)

php arrays foreach arrayobject php-7

9
推荐指数
1
解决办法
551
查看次数

PHP如何索引关联数组?

据我所知,associative arrays如果没有设置键,它将自动设置.但在这种情况下似乎没有意义:

$a = array( '1' => 'One', '3', '2' => 'Two');
print_r($a);
Run Code Online (Sandbox Code Playgroud)

输出:

Array ( [1] => One [2] => Two )
Run Code Online (Sandbox Code Playgroud)

那么'3'在哪里?

php associative-array

8
推荐指数
1
解决办法
380
查看次数

PHP从数组中删除特定项

我有一个像这样的数组: [312, 401, 1599, 3]

随着array_diff( [312, 401, 1599, 3], [401] )我可以删除一个值,在我的例子我删除了值401.

但如果我有这个:[312,401,401,401,1599,3],如何只删除一次值401?

如果我删除第一个或最后一个值并不重要,我只需删除ONE 401值,如果我想删除所有401值,我必须删除三次.

谢谢 !

php arrays

8
推荐指数
1
解决办法
1万
查看次数

PHP通过子数组键值从多维数组中删除子数组

我有这个数组:

array(5) {
  [0]=>
  array(4) {
    ["nachricht"]=>
    string(9) "blablaaaa"
    ["user"]=>
    string(15) "334607943355808"
    ["datum"]=>
    string(16) "18.09.2014 11:13"
    ["deleted"]=>
    string(0) ""
  }
  [1]=>
  array(4) {
    ["nachricht"]=>
    string(3) "joo"
    ["user"]=>
    string(15) "334607943355808"
    ["datum"]=>
    string(16) "18.09.2014 11:56"
    ["deleted"]=>
    string(15) "334607943355808"
  }
  [2]=>
  array(4) {
    ["nachricht"]=>
    string(4) "noma"
    ["user"]=>
    string(15) "334607943355808"
    ["datum"]=>
    string(16) "18.09.2014 11:56"
    ["deleted"]=>
    string(0) ""
  }
  [3]=>
  array(4) {
    ["nachricht"]=>
    string(4) "test"
    ["user"]=>
    string(15) "334607943355808"
    ["datum"]=>
    string(16) "18.09.2014 11:56"
    ["deleted"]=>
    string(0) ""
  }
  [4]=>
  array(4) {
    ["nachricht"]=>
    string(4) "doh!"
    ["user"]=>
    string(15) "334607943355808" …
Run Code Online (Sandbox Code Playgroud)

php multidimensional-array

7
推荐指数
1
解决办法
5483
查看次数

如何从laravel中的会话数组中删除项目

这是我有一个会话的问题

session('products')
Run Code Online (Sandbox Code Playgroud)

这实际上是一个包含id的数组

session('products')
array:4 [?
0 => "1"
1 => "2"
2 => "4"
3 => "1"
]
Run Code Online (Sandbox Code Playgroud)

现在我要删除让我们说4我该怎么做?我试过方法

session()->pull($product, 'products');
Run Code Online (Sandbox Code Playgroud)

但它不起作用!

其他方案

session()->forget('products', $product);
Run Code Online (Sandbox Code Playgroud)

它也没用

php session laravel laravel-5 laravel-5.3

3
推荐指数
2
解决办法
6674
查看次数

删除php变量的元素

我有两个变量,我想从另一个变量中删除一个变量

喜欢 :

$var1 = '4';
$var2 = '5,7,4,9';

if ($var1 Inside $var2)
{
// remove 4
}
Run Code Online (Sandbox Code Playgroud)

//输出

$var2 = '5,7,9';
Run Code Online (Sandbox Code Playgroud)

谢谢 ...

php

0
推荐指数
1
解决办法
40
查看次数

从数组php获取set元素

我在php中有数组:

Array
    (
        [id] => 1
        [comp_id] => 1
        [transaction_purpose] => 0
        [source_of_funds] => 1
        [beneficiary_relationship] => 0
        [cus_occupation] => 0
        [cus_id_image_2] => 0
        [cus_id_image_3] => 0
        [ben_id_type] => 0
        [ben_id_number] => 1
    )
Run Code Online (Sandbox Code Playgroud)

如果valie为1,我想得到只有数组键=>值对.

结果数组应该是:

Array
    (
        [id] => 1
        [comp_id] => 1
        [source_of_funds] => 1
        [ben_id_number] => 1
    )
Run Code Online (Sandbox Code Playgroud)

我尝试过:

$returnArray = array();
    foreach($mainArray as $r){
        if($r>0){
            array_push($returnArray, $mainArray);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,它给了我4次主阵列.有没有办法实现这个目标?谢谢..

php arrays

0
推荐指数
1
解决办法
43
查看次数