我需要删除给定值的数组项:
if (in_array($id, $items)) {
$items = array_flip($items);
unset($items[ $id ]);
$items = array_flip($items);
}
Run Code Online (Sandbox Code Playgroud)
可以用更短(更有效)的方式完成吗?
当我知道元素名称时,如何从数组中删除元素?例如:
我有一个数组:
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
Run Code Online (Sandbox Code Playgroud)
用户输入 strawberry
strawberry 已移除.
完全解释:
我有一个数据库,用于存储用逗号分隔的项目列表.代码根据该选项所在的用户选择拉入列表.因此,如果他们选择草莓,他们会在每个条目中提取代码,而草莓位于其中,然后使用split()将其转换为数组.我想让他们从数组中删除用户选择的项目,例如草莓.
我想转换数组:
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内置数组用于执行此操作.删除后我需要顺序索引顺序.任何身体都知道请帮助我.
我尝试了很多不同的方法,但我无法从数组中取消设置变量.我开始用一个字符串将它爆炸成一个数组,现在我要删除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) (底部的例子!!!)
我们刚刚将后端升级到PHP7,之后,我们在代码中发现了一个与ArrayObject相关的错误.
代码只是循环遍历Object的一个副本(类型为native ArrayObject).foreach按值迭代.
代码的目的是过滤一些您不需要的值.在示例中,如果迭代值为"2"或"3",则取消设置.我已经尝试使用迭代器而不是复制的值而没有迭代器.
结果:
第一个循环=> $ key = 0,$ value ="one"//继续
第二个循环=> $ key = 1,$ value ="second"//未设置
第三循环=> $ key = 3,$ value ="四"// WTF?哪里是$ key = 2,$ value ="三"????
所以我无法理解发生了什么.我们的时间解决方案是迭代原始对象并从副本中取消设置.有谁知道PHP核心(或ArrayObject/ArrayIterator)中的哪个更改?我有搜索它,但有些人有foreach这个问题,迭代的项目是参考.
如果在PHP 5.6和7之间切换,则行为会发生变化.
$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) 据我所知,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'在哪里?
我有一个像这样的数组: [312, 401, 1599, 3]
随着array_diff( [312, 401, 1599, 3], [401] )我可以删除一个值,在我的例子我删除了值401.
但如果我有这个:[312,401,401,401,1599,3],如何只删除一次值401?
如果我删除第一个或最后一个值并不重要,我只需删除ONE 401值,如果我想删除所有401值,我必须删除三次.
谢谢 !
我有这个数组:
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) 这是我有一个会话的问题
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)
它也没用
我有两个变量,我想从另一个变量中删除一个变量
喜欢 :
$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中有数组:
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次主阵列.有没有办法实现这个目标?谢谢..