配列を結合する
$A = array( '1' => array( 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) ); $B = array( '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' ) ); foreach( $A as $k => $v){ foreach($B as $kk => $vv){ if($k = $kk){ $vvv[] = $v+$vv; } } } var_dump($vvv);
こんな風に書けます
array (size=4) 0 => array (size=8) 'amount' => string '100' (length=3) 'amount1' => string '50' (length=2) 'amount2' => string '200' (length=3) 'payment' => string '12121212' (length=8) 'payment1' => string '12121212' (length=8) 'user_money' => string '100' (length=3) 'user_money1' => string '50' (length=2) 'user_money2' => string '200' (length=3) 1 => array (size=9) 'amount' => string '100' (length=3) 'amount1' => string '50' (length=2) 'amount2' => string '200' (length=3) 'payment' => string '12121212' (length=8) 'payment1' => string '12121212' (length=8) 'user_money' => string '10' (length=2) 'user_money1' => string '5' (length=1) 'user_money2' => string '20' (length=2) 'user_money3' => string '45454545' (length=8) 2 => array (size=8) 'amount' => string '10' (length=2) 'amount1' => string '5' (length=1) 'amount2' => string '20' (length=2) 'payment' => string '45454545' (length=8) 'payment1' => string '45454545' (length=8) 'user_money' => string '100' (length=3) 'user_money1' => string '50' (length=2) 'user_money2' => string '200' (length=3) 3 => array (size=9) 'amount' => string '10' (length=2) 'amount1' => string '5' (length=1) 'amount2' => string '20' (length=2) 'payment' => string '45454545' (length=8) 'payment1' => string '45454545' (length=8) 'user_money' => string '10' (length=2) 'user_money1' => string '5' (length=1) 'user_money2' => string '20' (length=2) 'user_money3' => string '45454545' (length=8)
望む結果
$C = array( * '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) * );
ディスカッションへの返信(解決策)
私の名前はすべて同じであることを補足します。あとは作成した名前に従って値をマージします
$A = array( '1' => array( 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) ); $B = array( '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' ) );foreach($A as $k=>$v) $r[] = $v + $B[$k];var_export($r);
array ( 0 => array ( 'amount' => '100', 'amount1' => '50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212', 'user_money' => '100', 'user_money1' => '50', 'user_money2' => '200', ), 1 => array ( 'amount' => '10', 'amount1' => '5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545', 'user_money' => '10', 'user_money1' => '5', 'user_money2' => '20', 'user_money3' => '45454545', ),)
$A = array( '1' => array( 'amount' => '100', 'amount1' =>'50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212' ), '2' => array( 'amount' => '10', 'amount1' =>'5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545' ) ); $B = array( '1' => array( 'user_money' => '100', 'user_money1' =>'50', 'user_money2' => '200' ), '2' => array( 'user_money' => '10', 'user_money1' =>'5', 'user_money2' => '20', 'user_money3' => '45454545' ) );foreach($A as $k=>$v) $r[] = $v + $B[$k];var_export($r);
array ( 0 => array ( 'amount' => '100', 'amount1' => '50', 'amount2' => '200', 'payment' => '12121212', 'payment1' => '12121212', 'user_money' => '100', 'user_money1' => '50', 'user_money2' => '200', ), 1 => array ( 'amount' => '10', 'amount1' => '5', 'amount2' => '20', 'payment' => '45454545', 'payment1' => '45454545', 'user_money' => '10', 'user_money1' => '5', 'user_money2' => '20', 'user_money3' => '45454545', ),)
モデレーター 簡単だと思います。 。 。キーは 11 に対応していません。この状況をどのように統合するか?
rree
B
array ( 16128 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16128', ), 16127 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16127', ), 16126 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16126', ), 16125 => array ( 'user_money' => '0.00', 'change_desc' => '订单 2016022647848 赠送的积分', 'user_id' => '16125', ), 16124 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16124', ), 16123 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16123', ), 16122 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16122', ), 16121 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16121', ), 16120 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16120', ), 16119 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16119', ), 16118 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16118', ), 16117 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16117', ), 16116 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16116', ), 16115 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16115', ), 16114 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16114', ), 16113 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16113', ), 16112 => array ( 'user_money' => '0.00', 'change_desc' => '注册送积分', 'user_id' => '16112', ), 16111 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16111', ), 16110 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16110', ), 16109 => array ( 'user_money' => '0.00', 'change_desc' => '', 'user_id' => '16109', ),)
違いはありますか?
キーストロークに関連付けられています
foreach($A as $k=>$v) $r[ $k] = $v + $B[$k]; でモデレータとしての私のニーズがわかります
users テーブルには user_name フィールドが 1 つだけ必要であり、
account_log にはchange_desc、user_money、およびfrozen_moneyが必要です。
user_account テーブルには支払いと金額が必要です。3 つのテーブルの関連フィールドは user_id です。
array ( 16127 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011118067599', 'user_id' => '16127', ), 16110 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011128883958', 'user_id' => '16110', ), 16102 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011125271413', 'user_id' => '16102', ), 16077 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011138443550', 'user_id' => '16077', ), 16062 => array ( 'amount' => '5.00', 'payment' => '储值卡号:15122274342772', 'user_id' => '16062', ), 16048 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011149520320', 'user_id' => '16048', ), 16037 => array ( 'amount' => '1000.00', 'payment' => '储值卡号:16011133169060', 'user_id' => '16037', ), 16029 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011127482943', 'user_id' => '16029', ), 16006 => array ( 'amount' => '500.00', 'payment' => '储值卡号:16011188176126', 'user_id' => '16006', ),)
users表数据user_id user_name1 ss2 dd
account_log表数据 ==》记录所有的充值、消费、退款记录user_id user_money frozen_money change_desc1 10 0 充值1 20 0 充值1 -40 0 消费2 50 0 充值3 50 0 充值
私の最初のアイデアは、user_account テーブルのデータを A として、account_log データを B として見つけて、配列をマージすることでした。最終的に、そのようなデータが必要になり、foreach 配列が必要になります。それをエクセルにエクスポートします。
しかし、配列をうまくマージできないことがわかりました。 。 。モデレーターはこの種のエクスポートをどのように行うべきですか?
配列のキーは一意です。
0 => array( 'user_id' => '1',
' user_money' => '10' ,
' user_money' => '20' ,
'user_money' => '-40' 、
'payment' => 'リチャージ 10 カード番号 1232'、
'支払い' => 'リチャージ 20 カード番号 5345'
)、
このようになります不可能です 存在します
3 レベルの配列に変更できます
0 => array(
'user_money' =>array( '10', '20' , '-40 '),
'payment'=>array('リチャージ 10 カード番号 1232', 'リチャージ 20 カード番号 5345') //ここでの対応する user_money は 3 つの値である必要があります,
),
1 => ; array(
'user_id' => '2',
'user_money' => '50',
'payment'=>'リチャージ 50 カード番号 3453'
),
2=>array(
'user_id' => '3',
'user_money' => '50',
'payment'=>'リチャージ 50 カード番号 5585'
)
原則に従ってマージします
$a=array(
0 => array(
0 ', '20', '-40' ),
'支払い '=>array('リチャージ 10 カード番号 1232', 'リチャージ 20 カード番号 5345 ')//ここでの対応するuser_moneyは3つの値でなければなりません
1 => > '50'、
'支払い'=>'リチャージ 50 カード番号 5585'、
$b=array_merge_recursive($a[0],$a[1]);
$b=array_merge_recursive($b, $a[2]);
結果を取得
array(3) { [0]=> [1]=> 文字列(1) "2" => 文字列(1) "3" } ["user_money"]=> 文字列(2) "10" [1]=> 文字列(2) "20" => 文字列(3) "50" => 文字列(2) "50" } ["支払い"]=> array(4) { [0]=> string(18) "リチャージ 10 カード番号 1232" [1]=> string(18) "リチャージ 20カード番号 5345" [2]=> string(18) "リチャージ 50 カード番号 3453" [3]=> string(18) "リチャージ 50 カード番号 5585" } }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











2 つの配列を入力として受け取り、2 つの配列をマージまたは連結して、結果を 3 番目の配列に格納してみます。 2 つの配列をマージするロジックは次のとおりです-J=0,k=0for(i=0;i<o;i++){//mergingtwoarrays if(a[j]<=b[k]){ c[i] =a[j]; j++; }else{ &nbs

JavaScript では、配列の結合は一般的な操作であり、concat 関数を使用して実現できます。 concat 関数は、複数の配列を新しい配列に結合できます。具体的なコード例を見てみましょう。まず、サンプル データとしていくつかの配列を定義します: vararr1=[1,2,3]; vararr2=[4,5,6]; vararr3=[7,8,9]; 次に、concat 関数を使用します。

PHP で指定されたキー名に従って複数の配列を 1 つの配列にマージする方法 開発中、指定されたキー名に従って複数の配列を 1 つの配列にマージする必要に遭遇することがよくあります。この必要性は、データを操作する場合、特にデータベースの結果セットを操作する場合などに非常に一般的です。この記事では、この機能を実現するための一般的な方法をいくつか紹介し、対応するコード例を示します。方法 1: ループ走査を使用する 最も簡単な方法は、ループを使用してすべての配列を走査し、指定されたキー名に従って対応する値を新しい配列に追加することです。サンプルコードは次のとおりです。

2 つの PHP 配列を 1 つの配列にマージする方法 PHP 開発では、2 つの配列を 1 つの配列にマージする必要がよくあります。この操作は、データ処理や配列操作で非常に一般的です。この記事では、PHP を使用して 2 つの配列を簡単かつ効率的に結合する方法を紹介します。 PHP には、配列をマージするための 2 つの関数、array_merge() と array_merge_recursive() が用意されています。以下にこれら2つの関数の使い方とサンプルコードをそれぞれ紹介します。あーる

PHP では、「array_merge_recursive()」関数を使用して、キー値を変更せずに 2 次元配列をマージできます。この関数は、2 つ以上の配列要素が同じキー名を持つ状況を処理するときにキー名を上書きしません。代わりに、同じキー名を持つ複数の値が再帰的に配列に形成されます。

PHP 関数の紹介 -array_combine(): 2 つの配列を結合して連想配列にする PHP には、配列の処理と操作に役立つ実用的な関数が多数あります。非常に便利な関数の 1 つは array_combine() です。この記事ではこの関数の使い方とサンプルコードを紹介します。 array_combine() 関数は、1 つの配列の値をキー名として使用し、別の配列の値をキー値として使用して、2 つの配列を新しい連想配列にマージします。これ

PHP で 2 つの配列をマージする方法 PHP プログラミングでは、2 つの配列をマージする必要がある状況によく遭遇します。 PHP には、配列のマージ操作を実装するためのさまざまなメソッドが用意されています。この記事では、一般的なメソッドのいくつかをコード例とともに紹介します。方法 1: array_merge 関数を使用する array_merge 関数は、配列を結合するために PHP によって提供される組み込み関数です。複数の配列をパラメータとして受け入れ、マージされた新しい配列を返します。以下は、array_merge 関数を使用して 2 つをマージする例です。

PHP で複数の配列をマージする方法 PHP では、配列は非常に重要なデータ構造であり、複数の関連するデータ項目を保存および操作するためによく使用されます。データをより便利に処理するために、複数の配列を 1 つの配列にマージする必要がある場合があります。この記事では、PHP で複数の配列を結合する方法を説明し、コード例を示します。 PHP には配列をマージするためのさまざまな方法が用意されています。ここでは、「+」演算子を使用する、array_merge 関数を使用する、array_m を使用するという 3 つの一般的な方法を紹介します。
