首页 > 解决方案 > 如何从数组中删除整数索引

问题描述

如何在不使用索引的情况下访问 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);

标签: phpwordpress

解决方案


您可以将变量分配给数组的当前元素:

$current = $array[0];

然后就可以访问了

$current['data']['ID'];

如果您需要能够使用此修改数组,则应使用参考:

$current =& $array[0];

您可以循环执行此操作:

foreach ($array as $current) {
    echo $current['data']['ID'];
}

推荐阅读