寻找帮助在PhP中整理出DIY数组方法

时间:2011-12-24 06:29:31

标签: php arrays

我需要在下面部署的PhP数组方法方面提供帮助:

实际PhP代码:

$itemsB = array("Steve Jobs"=>"USA", "Thomas Edison"=>"USA");
echo $itemsB['Steve Jobs'];
echo '<br />';
echo $itemsB['Thomas Edison'];

预期成果: 美国 USA


基于以上创建DIY方法,希望检索相同的结果但失败(没有输出)?我使用这种DIY方法的原因是因为我有一个需要填充常规数组方法的配置文件数据列表:$ items = array('name1'=&gt;'value1','name2'=&gt;'值2' );

$ProfileName[0] = "\"Steve Jobs\"=>\"USA\"";
 $ProfileName[1] = "\"Thomas Edison\"=>\"USA\"";

 $items = array("$ProfileName[0]", "$ProfileName[1]");
 echo $items['Steve Jobs'];
 echo '<br />';
 echo $items['Thomas Edison'];

请指教! 干杯


好的,如果您仍然不清楚以上内容,请简要了解我正在寻找的内容。下面是在文本字段框中搜索自动填充方法的配置文件名称的代码。如果我将静态值输入到数组中,则下面的代码正常工作。但是,我在数据库中有一个我想填充的配置文件名列表,并将其添加到下面的数组中。因此,我想到了上面展示的一些DIY。除非有其他解决方案。请建议

$q = strtolower($_GET["q"]);
if (!$q) return;

$items = array("Steve Jobs"=>"USA", "Thomas Edison"=>"USA");

foreach ($items as $key=>$value) {
    if (strpos(strtolower($key), $q) !== false) {
        echo "$key|$value\n";
    }//END IF
}//END FOR

1 个答案:

答案 0 :(得分:0)

如果我能正确理解你的问题,这对你有用:

 $ProfileName[0] = 'Steve Jobs|USA';
 $ProfileName[1] = 'Thomas Edison|USA';

 $items = array();

 foreach($ProfileName as $p){
    $items[substr($p,0,strpos($p,'|'))] = substr($p,strpos($p,'|')+1,strlen($p));
 }

  print_r($items);
 echo $items['Steve Jobs'];
 echo '<br />';
 echo $items['Thomas Edison'];

到达同一个地方似乎还有很长的路要走,但你可以尝试这样的事情。

如果您从数据库中提取内容,这样的事情可能有所帮助:

$db = new mysqli('host','user','password','db-name');

if ($result = $db->query("SELECT name,location FROM `table`"))
    {
        if ($result->num_rows > 0)
        {
            while ($row = $result->fetch_object())
            {
                $items[$row->name] = $row->location;
            }
        }
    }
 echo $items['Steve Jobs'];
 echo '<br />';
 echo $items['Thomas Edison'];