php - 如何从数组中删除整数索引
问题描述
如何在不使用索引的情况下访问 ID 值?
在我的代码中,我这样做( $array[0]['data']['ID'] )来访问 ID 值,我有很多用户并且必须通过整数索引单独访问它们非常耗时。
我不喜欢使用 foreach 循环,因为我的代码调用了远程 API,它会查询每个用户的 API,这会杀死性能。
如果我可以将当前数组转换为一个没有索引的数组,那就太好了,只需通过( $array['data']['ID'] )访问 ID 值。
[0] => Array ( [data] => Array ( [ID] => 370
[1] => Array ( [data] => Array ( [ID] => 405
我发现下面的代码大大滞后了我的页面加载:
foreach ($search_users as $k => $user):
if (!empty($street[0])) {
$db = prettyAddress(get_user_meta($user->ID, 'company_address', true));
$match = matchAddress($formattedAddress, $db, count($street));
if ($match == false)
unset($search_users[$k]);
}
endforeach;
我在这里的问题中引用了它: 为什么我的 foreach 需要永远加载
$location = !empty($_POST['saddress']) ? $_POST['saddress'] : "NA";
$display = false;
if ($location != "NA")
$display = true;
global $wpdb;
$location = $_POST['saddress'];
$street = explode(',', $location);
$cat = $_GET['specializingin'];
$args = array(
'meta_query' => array(
array(
'key' => 'scategory',
'value' => $_GET['specializingin'],
'compare' => 'LIKE'
),
array(
'key' => 'specialties',
'value' => ($_GET['specialitiesin'] == 'All Specialties' ? '' : $_GET['specialitiesin']),
'compare' => 'LIKE'
),
),
);
$search_users = get_users($args);
$formattedAddress = prettyAddress($location);
解决方案
您可以将变量分配给数组的当前元素:
$current = $array[0];
然后就可以访问了
$current['data']['ID'];
如果您需要能够使用此修改数组,则应使用参考:
$current =& $array[0];
您可以循环执行此操作:
foreach ($array as $current) {
echo $current['data']['ID'];
}
推荐阅读
- pvlib - import pvlib 找不到模块,抛出 [WinError 126]
- reactjs - 时间线素材-ui不占空间
- javascript - 具有外部解析的 Promise.all 永远不会解析
- c# - 为什么我的 LINQ 查询中不包含来自 AspNetUser 的数据?
- scala - 类型稳定参数多态性
- gradient - NetLogo 中的趋化性
- cassandra - Cassandra 如何翻阅墓碑和活细胞?
- sql - PL/SQL Oracle dbms_output 使输出均匀
- python - Matplotlib:散点图和颜色条颜色不匹配
- swift - SwiftUI Textfield 实际上并未对数据进行更新