2011-04-23 65 views
0

有我也有删除一个阵列的关键 不是已经在其他阵列,像取出钥匙在其它阵列

/** 
    * I Have This Array, With Keys 
    * Name, Lastname, Date 
    */ 
    $Array = Array('name' => 'Mike', 'lastname' => 'Griggs', 'date' => strftime('%A %c')); 
    /** 
    * And The Split , Make This One Array 
    */ 
    $Fields = 'name, lastname'; 
    foreach(split(',', str_replace(' ', NULL, $Fields)) as $Index => $Field): 
      if(!array_key_exists($Field, split(',', str_replace(' ', NULL, $Fields)))): 
        unset($Array[$Field]); 
      endif; 
    endforeach; 
    print_r($Array); 
    /** 
    * i Have to Remove The Elements of $Array 
    * That Not Have in $Fields, In This Case, Unset 'date' From $array 
    */ 

但Retorning日期字段在阵列 我需要取消设置键不都在$领域从Array, 如果不要有名称的Array,只返回名字..

感谢的[]

+1

你为什么善用每一个字? – Blender 2011-04-23 18:41:12

+0

对不起,不了解你问题=) – XMLP4rse 2011-04-23 18:42:23

+0

我也没有,对不起... – Blender 2011-04-23 18:43:24

回答

0

你应该考虑在适当的英语在格式化您的问题。主要是因为用户会批评它而不是回答它或完全忽略它。

这就是说,我假设你有一个数组和一个逗号分隔索引的字符串。然后你想通过删除额外的数据来“清理”你的数组。

这里有一个关于你可能如何做到这一点的例子:

<?php 
$array = Array('name' => 'Mike', 'lastname' => 'Griggs', 'date' => strftime('%A %c')); 
$fields = 'name, lastname'; 

function removeIndex($a,$f){ 
    $f=explode(',',$f); 
    $b=array(); 
    foreach($f as $v){ 
     $v=trim($v);// only need if you have extra whitespace 
     $b[$v]=$a[$v]; 
    } 
    return $b; 
} 

$array=removeIndex($array,$fields); 
print_r($array); 
?> 
+0

谢谢',其作品=) – XMLP4rse 2011-04-23 18:48:02

+0

停止大写每个单词。我很高兴它的工作。 – Khez 2011-04-23 18:48:57

+0

我怎样才能'取消'该字段? – XMLP4rse 2011-04-23 18:57:04