从信息数组中插入数据


Inserting data from an array of information?

我不确定如何处理这个问题,我需要一些关于从名称列表中插入数据的建议。这是统计类型的数据。假设我有一个看起来像这样的数组。

$basketball = array (
    'teams' => array (
        'orange' => array (
            'names'  => array(
                'matt' => array('number' => '12', 'position' => 'guard'), 
                'john' => array('number' => '23', 'position' => 'forward'),
            ),
        ),
        'blue' => array (
            'names'  => array(
                'luke' => array('number' => '34', 'position' => 'guard'), 
                'brian' => array('number' => '45', 'position' => 'forward'),
            ),
        ),
    ),
);

然后在我的应用程序中,我对这样的名称运行 foreach。

<?php foreach($basketball as $key => $teams): ?>
    <?php foreach($teams as $team => $names): ?>
    <div class="teams <?php echo $team ?>" data-score="0">
        <?php foreach($names as $key => $players): ?>
            <?php foreach($players as $player => $player_info): ?>
                <div class="home-stats stats <?php echo $team ?>" data-player="<?php echo $player ?>">
                    <ul>
                        <li class="name">
                        <span><?php echo $player ?></span>
                        <input type="hidden" name="home-playername" value="<?php echo $player ?>" />
                        </li>
                        <li class="points">
                        <span>0</span>
                        <input type="hidden" name="home-points" value="0" />
                        </li>
                    </ul>
                </div>
            <?php endforeach; ?>    
        <?php endforeach; ?>
    </div>   
    <?php endforeach; ?>
<?php endforeach; ?>

有了这个,我试图找出添加数据的最佳方法,以便积分与玩家相匹配,显然我会有更多的统计数据和球员,但为了示例,这就是我所需要的。

我正在考虑使用 json 并使用 jQuery 重写名称属性,然后构建一个数组,并为每个团队名称设置一行,但同样我想不出如何重命名这些输入以构建一个实体数组,看起来像(对不起,如果它有点混乱,但这只是一个想法)

  {"players":[{"matt":[{"stats":[{"points":"22"}]}], 
               "john":[{"stats":[{"points":"18"}]}]}]}

我想这可能是一个相当广泛的问题,但总结一下,如果你是开发人员,你会如何处理数据的统计风格,玩家的名字是所有信息的父级......或。。。可能是团队名称是所有信息的父级,无论哪种方式,一旦我想出最好的方法,我就可以采取任何一种方式。

你应该

使用像ember.js,angular.js或backbone.js这样的插件。您应该创建一个简单的 RESTful API 来从服务器检索数据。要完成此任务,请继续执行三个步骤:

1-将数据放入数据库中确保所有关系都经过深思熟虑。不要在数据库中抛出随机信息。当我查看您的示例时,您似乎已经对组织数据的方式有问题。名称应该是对象的属性,而不是键的名称。使用 OOP 的强大功能。

2-将数据库映射到对象中省去大麻烦,使用教义。它可以帮助您映射实体之间的数据和关系。您可以使用少于 50 行代码来映射整个应用程序。

3-返回数据以您需要的任何格式返回它。JSON是非常主流的,但你可以决定返回XML或YAML。这取决于你。使用任何你觉得舒适的东西。

我个人使用Ember.js。它为您的模板使用车把。最后,你的代码应该非常简短和干净:

<div id="comments">
    {{#each player}}
        <h2>#{{id}}">{{name}}</a></h2>
        <div>{{points}}</div>
    {{/each}}
</div>

如果您不知道这些框架的工作原理,请花时间学习它们。你现在的做法是错误的。养成最好的习惯,学习如何使用 MVC 架构构建可靠的应用程序。

希望对你有帮助