比方說,我有這樣的循環在我的header.php:如何將while循環中的獲取行保存到新數組中?
<div id="top-20">
<h2 class="top-20-title">TOP 20 TEAMS</h2>
<div class="top-20-content">
<?php
$params = array(
'limit' => -1 // get everything
);
$matches = pods('matches', $params);
if (0 < $matches->total()) {
while ($matches->fetch()) {
?>
<?php echo $matches->field('winner_team'); ?>
<br>
<?php
} // end of while loop
} // end of if any exists
?>
</div><!-- /top-20-content -->
</div><!-- /top-20 -->
這是我的簡化表的樣子:
id | team_1 | team_2 | winner_team
--------------------------------
1 | 3 | 15 | 3
--------------------------------
2 | 20 | 8 | 8
--------------------------------
3 | 18 | 11 | 18
--------------------------------
4 | 8 | 7 | 8
--------------------------------
...
但我想,而不是while循環一樣
內迴盪<?php echo $matches->field('winner_team'); ?>
創建一個新的數組,即$ matches_array它將包含2列如id_new和winner_team_new並保存在winner_team的值winner_team_new,而不是直接呼應它while循環中。
然後,我想循環這個新創建的數組$ matches_array在另一個while循環中group_出現的winner_team_new和orderby他們的DESC。
所以,我會得到這樣的事情:
8
3
18
什麼,而不是我用的,當目前得到迴響在while循環:
3
8
18
8
爲什麼我不能只是做內部的sql?我需要使用另一個不使用$ params或sql array中的條件的數組來完成,因爲這個bug:https://github.com/pods-framework/pods/issues/595以及pods框架對於我自己將代碼調整到核心過於複雜的事實,所以我想繞過這個使用while循環創建的數組。
所以,我需要的是創建一個數組並重新排列基於wonders_team出現次數從最多到最少的結果。
我一直在使用
$matches_array = array_count_values(array_map($matches,array_keys($new_row)));
然後循環它while循環嘗試,但它是不工作的。
我需要幫助計數陣列/組的部分。
我幾乎不知道有關它的任何事情。
我只是猜想,我需要在分組後根據相同的winner_team字段創建一個新的字段,例如, 獲勝其中每個團隊的出現次數(基於winner_team)值將被存儲。然後訂購新的陣列DESC。
Btw。表中的所有列都是整數
編輯2: 我想通了如何從while循環值存儲新陣列名爲$ matches_array內,代碼如下所示:
<div id="top-20">
<h2 class="top-20-title">TOP 20 TEAMS</h2>
<div class="top-20-content">
<?php
$params = array(
'limit' => -1 // get everything
);
$matches = pods('matches', $params);
if (0 < $matches->total()) {
while ($matches->fetch()) {
?>
<?php // echo $matches->field('winner_team'); ?>
<?php $row_array = $matches->field('winner_team'); ?>
<?php $matches_array[]; ?>
<br>
<?php
} // end of while loop
} // end of if any exists
?>
</div><!-- /top-20-content -->
</div><!-- /top-20 -->
現在,我可能需要在groupby之後做一個foreach循環(基於winner_team字段中的數字的出現)並在輸出DESC之前對結果進行排序。
任何意見如何做到這一點?
我試圖此$ PARAMS =陣列( '選擇'=> 'winner_team,計數(ID)爲勝', '的OrderBy'=> '勝DESC', 'GROUPBY'=> 'winner_team', 'limit'=> 20 );但是Pods有一個問題,所以它不起作用。因此,我想繞過它使用數組,然後while循環分組和排序數組(如果它有可能與數組本身)再次 – Derfder
不太確定你想要放入你創建的數組。它是* $ matches-> field('team_1.name')*和* $ matches-> field('team_2.name')*的內容還是什麼? – inquam
@Derfder:這與實際問題沒有任何關係。你試圖自己解決問題的是什麼? – Jon