创建一个从0

时间:2018-01-13 11:48:08

标签: php arrays

我有50个(或更少)数组,我需要在一个数组中返回它们。

我正在使用

$results = DB::table('coinflip_history')->where('ct', Auth::user()->steamid)->orWhere('t', Auth::user()->steamid)->orderByRaw('round_id DESC')->limit(50)->get();
$results = json_decode($results, true);
$i=1;
foreach ($results as $key => $value) {
    if (!$value['winner']) $array[$i] = array('secret' => null, 'winning_string' => null, 'hash' => $value['hash'], 'timestamp' => $value['time']);
    else $array[$i] = array('secret' => $value['secret'], 'winning_string' => $value['percentage'], 'hash' => $value['hash'], 'timestamp' => $value['time']);
    $i++;
}

return array($array[1], $array[2], $array[3], $array[4], $array[5], $array[6], $array[7], $array[8], $array[9], $array[10], $array[11], $array[12], $array[13], $array[14], $array[15], $array[16], $array[17], $array[18], $array[19], $array[20], $array[21], $array[22], $array[23], $array[24], $array[25], $array[26], $array[27], $array[28], $array[29], $array[30], $array[31], $array[32], $array[33], $array[34], $array[35], $array[36], $array[37], $array[38], $array[39], $array[40], $array[41], $array[42], $array[43], $array[44], $array[45], $array[46], $array[47], $array[48], $array[49], $array[50]);

但如果阵列少于50个则无法正常工作。

有没有办法让它自动运作?

2 个答案:

答案 0 :(得分:1)

所有数组都有索引。

它只是that kind of data data structure

PHP没有办法生成没有索引的数组。它不会是一个数组。

您使用代码完成的唯一事情是从1开始生成一个数组,然后从0开始创建一个新数组。

由于两者在功能上都是等价的,我想当你返回一个基于1的数组时,问题就存在了。

所以如果你愿意的话:

$array = [];
$results = json_decode($results, true);

foreach($results as $key => $value){
    if(!$value['winner']) {
      $array[] = [
         'secret'         => null,
         'winning_string' => null,
         'hash'           => $value['hash'],
         'timestamp'      => $value['time']
      ];
    }
    else {
      $array[] = [
         'secret'         => $value['secret'],
         'winning_string' => $value['percentage'],
         'hash'           => $value['hash'],
         'timestamp'      => $value['time']
      ];
   }
}

return $array;

你得到了你需要的东西。这比你在那里做的100%相同,但步数更少,并且适用于返回的$array上的任意数量的值。

答案 1 :(得分:-1)

// as simple as this
return $array;