使用 foreach 循环从关联数组中删除最后一个元素
using foreach loop to delete last element from associative array
我想从每个数组中删除价格指数。
这是一个示例代码:
Array([0] => Array
(
[player_id] => 108
[trnmnt_team_id] => 1
[player_type] => 1
[user_team_id] => 11
[user_id] => 4
[price] => 10.00
)
[1] => Array
(
[player_id] => 151
[trnmnt_team_id] => 2
[player_type] => 1
[user_team_id] => 11
[user_id] => 4
[price] => 10.00
)
)
我试图删除以下方式,但它显示出意外 'unset' (T_UNSET)
:
foreach ($mergeAllType as $key => $value) {
$price=$value;
$withOutPrice[]=unset($price['price']);
}
unset
没有 returns 任何值(它是语言构造,而不是函数),您必须按照以下方式进行操作:
unset($price['price']);
$withOutPrice[] = $price;
如果您知道最后一个索引的键,Tomas.lang 的答案就可以正常工作。但是,如果您不知道最后一个密钥的名称,您可以使用以下内容:
unset(end($price));
$withOutPrice = $price;
您已经得到关于 foreach 循环的答案。
所以,让我给你一个不同的答案,使用 array_map and an anonymous function ;-)
<?php
$src = array(
array (
'player_id' => 108,
'trnmnt_team_id' => 1,
'player_type' => 1,
'user_team_id' => 11,
'user_id' => 4,
'price' => 10.00,
),
array (
'player_id' => 151,
'trnmnt_team_id' => 2,
'player_type' => 1,
'user_team_id' => 11,
'user_id' => 4,
'price' => 10.00,
),
);
$withOutPrice = array_map(
function($e) {
unset($e['price']);
return $e;
},
$src
);
var_export($withOutPrice);
如果您想 unset()
全部关闭数组中的 price
键,您可以使用 array_walk()
array_walk($arr, function(&$array) {
unset($array['price']);
});
只需将 $arr
替换为您的数组名称即可,即 $teams
.
如果您想要两个数组,一个有价格,一个没有价格,您可以在执行上述操作之前复制该数组;即
$teams = <DATASOURCE>
$teamsWithoutPrice = $teams;
array_walk($teamsWithoutPrice, function(&$array) {
unset($array['price']);
});
然后,如果您打印出 $teamsWithoutPrice
数组,您的数组将删除 price
键。
希望对您有所帮助。
我想从每个数组中删除价格指数。
这是一个示例代码:
Array([0] => Array
(
[player_id] => 108
[trnmnt_team_id] => 1
[player_type] => 1
[user_team_id] => 11
[user_id] => 4
[price] => 10.00
)
[1] => Array
(
[player_id] => 151
[trnmnt_team_id] => 2
[player_type] => 1
[user_team_id] => 11
[user_id] => 4
[price] => 10.00
)
)
我试图删除以下方式,但它显示出意外 'unset' (T_UNSET)
:
foreach ($mergeAllType as $key => $value) {
$price=$value;
$withOutPrice[]=unset($price['price']);
}
unset
没有 returns 任何值(它是语言构造,而不是函数),您必须按照以下方式进行操作:
unset($price['price']);
$withOutPrice[] = $price;
Tomas.lang 的答案就可以正常工作。但是,如果您不知道最后一个密钥的名称,您可以使用以下内容:
unset(end($price));
$withOutPrice = $price;
您已经得到关于 foreach 循环的答案。
所以,让我给你一个不同的答案,使用 array_map and an anonymous function ;-)
<?php
$src = array(
array (
'player_id' => 108,
'trnmnt_team_id' => 1,
'player_type' => 1,
'user_team_id' => 11,
'user_id' => 4,
'price' => 10.00,
),
array (
'player_id' => 151,
'trnmnt_team_id' => 2,
'player_type' => 1,
'user_team_id' => 11,
'user_id' => 4,
'price' => 10.00,
),
);
$withOutPrice = array_map(
function($e) {
unset($e['price']);
return $e;
},
$src
);
var_export($withOutPrice);
如果您想 unset()
全部关闭数组中的 price
键,您可以使用 array_walk()
array_walk($arr, function(&$array) {
unset($array['price']);
});
只需将 $arr
替换为您的数组名称即可,即 $teams
.
如果您想要两个数组,一个有价格,一个没有价格,您可以在执行上述操作之前复制该数组;即
$teams = <DATASOURCE>
$teamsWithoutPrice = $teams;
array_walk($teamsWithoutPrice, function(&$array) {
unset($array['price']);
});
然后,如果您打印出 $teamsWithoutPrice
数组,您的数组将删除 price
键。
希望对您有所帮助。