【问题标题】:Creating a dynamic multidimensional array from MYSQL filters从 MYSQL 过滤器创建动态多维数组
【发布时间】:2011-06-13 13:23:36
【问题描述】:

我一直在寻找正确的格式来从数据库过滤器创建多维数组。我正在为一个项目使用一个常量联系 php 包装器,该项目需要一个精确的格式来加载一组电子邮件地址、名字和姓氏。有关该类将接受的数组的正确格式,请参见下文:

<php?
$contacts = array(
    array(
        'Email Address' => 'test@test.com',
        'First Name' => 'Mike - TEST API',
        'Last Name' => 'NULL',
    )

);

我现在的代码如下:

<form action="<?php echo $PHP_SELF;?>" method="get" name="form" target="_self" id="form">
<p>
<select name="networks[]" size="50" multiple>
<option value="West Bronx">West Bronx</option>
<option value="Williamsburg">Williamsburg</option>
<option value="Turtle Bay">Turtle Bay</option>
<option value="Times Square">Times Square</option>
<option value="Southeast Bronx">Southeast Bronx</option>
<option value="Sutton">Sutton</option>
<option value="Sunnyside">Sunnyside</option>
<option value="Sheridan Square">Sheridan Square</option>
<option value="Sheepshead">Sheepshead</option>
<option value="Roosevelt">Roosevelt</option>
<option value="Riverdale">Riverdale</option>
<option value="Ridgewood">Ridgewood</option>
<option value="Richmond Hill">Richmond Hill</option>
<option value="Battery Park City Network">Battery Park City Network</option>
<option value="Yorkville">Yorkville</option>
</select>
<br>
<input type="submit" name="Submit" value="Submit">
</form> 

<?



// Get the value of the filters and see if there are more then one selection
$foo = $_GET['networks'];
$sQuery = "";
if (sizeof($foo) > 0) {
  for ($i=0;$i<sizeof($foo);$i++) {
    $sQuery .= "Network LIKE '%$foo[$i]%' OR ";
  }
}
else{
  $sQuery = "Network LIKE '%$foo[0]%";
}
mysql_select_db($database_conn, $conn); 


$query_Recordset0 = "SELECT * FROM contacts WHERE $sQuery "; 
// Knock the last "OR" off the Query
$query_Recordset1 = substr($query_Recordset0, 0, -4); 


echo $query_Recordset1;
$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());







?>



<table width="200" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Network</td>
<td>Email</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_Recordset1['Network']; ?></td>
<td><?php echo $row_Recordset1['Email']; ?></td>

<td><?php echo $row_Recordset1['First Name']; ?></td>
<td><?php echo $row_Recordset1['Last Name']; ?></td>
</tr>
<?php

//BUILD The Multidimensional Array from the database Query and store it appropriately

$newarray = array();
$newarray[]['Email Address']=$row_Recordset1['Email'];
$newarray[]['First Name']='NULL';
$newarray[]['Last Name']='Last Name';
print_r($newarray);

这会产生这样的数组:

Array (
[0] => Array ( [Email Address] => )
[1] => Array ( [First Name] => NULL )
[2] => Array ( [Last Name] => Last Name ) )

Array (
[0] => Array ( [Email Address] => silverslammer@aol.com )
[1] => Array ( [First Name] => NULL )
[2] => Array ( [Last Name] => Last Name ) )

Array ( 
[0] => Array ( [Email Address] => shlomi@lmopticaldisc.com )
[1] => Array ( [First Name] => NULL )
[2] => Array

任何帮助将不胜感激。

下面是我需要的样子:

$contacts = array(
    array(
        'Email Address' => 'test@test.com',
        'First Name' => 'Mike - TEST API',
        'Last Name' => 'NULL',
    )

);

【问题讨论】:

  • 您能否向我们展示如果您的代码有效,数据会是什么样子? Array ( [0] =&gt; '', [1] =&gt; NULL, [2] =&gt; Last Name), Array ( [0] =&gt; silverslammer@aol.com, [1] =&gt; NULL, [2] =&gt; Last Name), Array ( [0] =&gt; shlomi@lmopticaldisc.com, [1] =&gt; NULL, [2] =&gt; '')
  • 重新格式化输出数组后,您的原始问题似乎缺少第三个数组的一部分。
  • 是的,正确的格式如下所示: Array ( [0] => Array ( [Email Address] => mkephart@ecsgrid.com [First Name] => Mike - TEST API [Last Name] ] => NULL ) [1] => Array ( [Email Address] => jheckman@ecsgrid.com [First Name] => Bryan - TEST API [Last Name] => NULL )
  • 我想我可能需要使用 for 循环来添加每个值,但我不确定如何在这个特定问题上执行此操作

标签: php mysql multidimensional-array


【解决方案1】:
$newarray[] = array(
  'Email Address'=>$row_Recordset1['Email'];
  'First Name'=>'NULL';
  'Last Name'=>'Last Name';
);

print_r($newarray);

【讨论】:

  • 这似乎工作谢谢!出于某种原因,尽管它在实际数据到达那里之前返回了一些空白值。数组 ( [0] => 数组 ( [电子邮件地址] => [名字] => [姓] => ) ) 数组 ( [0] => 数组 ( [电子邮件地址] => [名字] => [姓] => ) [1] => Array ( [Email Address] => mtoborg@jhha.org [First Name] => [Last Name] => ) ) Array ( [0] => Array ( [Email地址] => [名字] => [姓氏] => ) [1] => 数组 ([电子邮件地址] => mtoborg@jhha.org [名字] => [姓氏] => ) [
  • 您是否正确初始化了您的阵列?你能检查你的数据库输出以确保没有返回空记录吗?
  • 我只是在 for 循环中打印它 - 现在一切正常,谢谢!
猜你喜欢
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 2017-12-10
  • 2021-09-19
  • 1970-01-01
相关资源
最近更新 更多