0

发布更新

我想在 PHP 中创建动态数组以提供与下面的静态数组相同的输出,我尝试使用 while 语句来实现,但它不起作用。你能给我一些建议吗?

我想使用 MySQL 中的 2 个值并将它们保存到 $to 变量中,所以首先 send_to1 (用户帐户)然后 value1 (金额)

<?php
$con=mysqli_connect("localhost","test","test","test");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM users");

$to=Array(

while($row = mysqli_fetch_array($result))
  {

$send_to1 => $value1,
$send_to2=> $value2
  }

);

mysqli_close($con);
?>
4

3 回答 3

4

就像向数组中添加元素一样简单:

//Setup blank array
$example = array();

//Create a loop, for example purposes.
foreach(range(0, 99) as $i){

    //Create random variable that we'll add to our array
    $randVar = mt_rand(1, 90000);

    //$i will be our array key/index
    $example[$i] = randVar;

}

//var_dump the array so you can see the structure / end result
var_dump($example);

您也可以像这样创建它:

//Create random array key/index
$myRandKey = mt_rand(1, 90000);

//Create random variable value.
$myRandVar = mt_rand(1, 90000);

//Setup an array
$example = array(
    $myRandKey => $myRandVar
);

//Another array key that we'll add to our array
$secondKey = 'test';

//Add it
$example[$secondKey] = 'This is just an example!';

//Dump out the array
var_dump($example);

array_push 也可以工作(使用 mysql_fetch_assoc,就像在你的例子中一样):

$example = array();
while($row = mysql_fetch_assoc($result)){
    array_push($example, $row);
}
var_dump($example);

在您的特定示例中(因为您添加了代码):

print_r($new_array[] = $row[]);

应改为:

print_r($new_array[] = $row);

在您的代码中,我将其更改为:

$new_array = array();
while($row = mysqli_fetch_array($result)){
  $new_array[] = $row;
}

或者,如果您想通过唯一列(例如主键)来键入数组:

$new_array = array();
while($row = mysqli_fetch_array($result)){
  $new_array[$row['id']] = $row;
}
于 2013-11-13T11:08:51.273 回答
1

其实你几乎明白了。它在“数组”中的 A 较低

初始化一个空数组:

$to = array();

在您的情况下(您已经有一些值),您可以执行以下操作:

$to = array(
   $send_to1 => $value1,
   $send_to2=> $value2
);

无论哪种情况,您都可以稍后添加更多元素

$to[$someOtherKey] = $someOtherValue;
于 2013-11-13T11:08:59.853 回答
1

看,这很容易,你只需要更加注意你在这里得到的答案。

这是您可以做到的最简单的方法:

$to = array();
$to[] = array($send_to1 => $value1);
$to[] = array($send_to2 => $value2);

while ( $row = mysqli_fetch_array($result) ) {
    $to[] = array($row['send_tox' => $row['valuex']);
}

您需要首先了解数组循环在 PHP 中是如何工作的,然后尝试在循环中创建动态数组。

于 2013-11-13T11:46:16.767 回答