【问题标题】:remove integer index an array删除整数索引数组
【发布时间】:2013-07-04 04:30:40
【问题描述】:

我正在一个网站上工作,我们需要删除类型为整数的数组的索引。 你有什么想法或建议。 我的数组看起来像这样:

Array
(
    [0] => first
    [first] => second
    [1] => second
    [second] => second
    [2] => third
    [third] => third
    [3] => forth
    [forth] => v
    [4] => fifth
    [fifth] => fifth
)

我们如何从数组中删除整数索引。还有一点需要注意的是,我们没有静态数组,我们不知道有多少索引。

需要这样:

Array
(  
    [first] => second  
    [second] => second  
    [third] => third  
    [forth] => v
    [fifth] => fifth
)

【问题讨论】:

  • 你是从数据库中得到这个吗?如果是,那么是哪个?如果这是 mysql 使用 mysqli_fetch_assoc 而不是 mysqli_fetch_array
  • 是的@YotamOmer 谢谢你
  • 好的,但你知道如何删除整数索引。

标签: php mysql arrays


【解决方案1】:

数据库解决方案:

要仅从 mysql 数据库中获取关联数组,请使用:mysqli_fetch_assoc() 而不是 mysqli_fetch_array()

mysqli_fetch_array() 获取整个数组 - 整数索引以及列名作为键。

mysqli_fetch_assoc() 仅获取列名作为键。 - 从而摆脱整数键。


一般解决方案:

一般来说,我会按照你的要求做:

foreach($array as $key => $value){
    if(is_numeric($key)) unset($array[$key]);
}

如果你愿意,也可以使用is_int()..

【讨论】:

  • 我的意思是如果数组不是来自数据库。我们可以为相同的结果做些什么。
【解决方案2】:

另一种方法:-

$array1 = array("6566"=>"zd  xf", "2"=>2, "c"=>3, "d"=>4, "e"=>5);
$keys=array_filter(array_keys($array1), "is_numeric");
$out =array_diff_key($array1,array_flip($keys));
print_r($out);

输出:

Array
(
[c] => 3

[d] => 4

[e] => 5

)

【讨论】:

  • 我不认为需要创建一个函数......你可以写同样的东西,只是没有这样的函数: $array1 = array("6566"=>"zd xf", "2 "=>2, "c"=>3, "d"=>4, "e"=>5); $keys=array_filter(array_keys($array1), "is_numeric"); $out =array_diff_key($array1,array_flip($keys)); print_r($out);
  • @gabrielem 谢谢(回调原生函数“is_numeric”)。
【解决方案3】:

删除数组的整数索引值。

$array1=array();
$array = array(0 => first,first => second,1 => second,second => second,2 => third,third => third,3 => forth,forth => v,4 => fifth,fifth => fifth);
foreach ($array as $key=>$value){
    if(gettype($key)=='integer'){
       unset($key);
       unset($value);
   }else{
    $array1[$key]=$value;
  }
}
print_r($array1);

像这样输出。

Array

( [第一] => 第二 [第二] => 第二 [第三] => 第三 [第四] => v [第五] => 第五 )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-01
    • 2011-10-27
    • 2020-10-31
    • 2012-04-22
    • 2012-10-25
    • 1970-01-01
    • 2012-05-03
    相关资源
    最近更新 更多