这将在Javascript(jQuery)中实现,但我想这个方法可以用于任何语言.
我有一系列项目,我需要进行排序.但是,数组中的某些项必须保持在相同的位置(相同的索引).
有问题的数组是从<li>元素列表构建的,我使用附加到列表项的.data()值作为要排序的值.
这方面最好的方法是什么?
<ul id="fruit">
<li class="stay">bananas</li>
<li>oranges</li>
<li>pears</li>
<li>apples</li>
<li class="stay">grapes</li>
<li>pineapples</li>
</ul>
<script type="text/javascript">
var sugarcontent = new Array('32','21','11','45','8','99');
$('#fruit li').each(function(i,e){
$(this).data('sugar',sugarcontent[i]);
})
</script>
Run Code Online (Sandbox Code Playgroud)
我希望列表按以下结果排序...
<ul id="fruit">
<li class="stay">bananas</li> <!-- score = 32 -->
<li>pineapples</li> <!-- score = 99 -->
<li>apples</li> <!-- score = 45 -->
<li>oranges</li> <!-- score = 21 -->
<li class="stay">grapes</li> <!-- score = 8 -->
<li>pears</li> <!-- score = 11 -->
</ul>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我已经到了 Symfony 2 / Doctrine 2 的重点,我开始意识到我们在应用程序中在服务和控制器中构建了太多的业务逻辑 - 而在模型中构建的业务逻辑还不够。
我们希望向我们的模型引入配置(以修改行为),从而可能使模型直接访问服务以执行其行为。
我注意到以下问题的答案完全错误,并被标记为正确,有 8 票赞成 - 所以我知道我们到目前为止所采取的方法(贫血模型)被许多 Symfony 认为是“正确”的做事方式2 个用户。在阅读了更多领域驱动设计之后,我知道情况并非如此。
我看到很多捆绑包定义了模型中的行为并在实体/文档中扩展了它。这种模式在一定程度上有效——但我认为我们需要引入一个额外的阶段。我们模型的某些行为是可选的,并且具有该行为将取决于我们的应用程序中注册了哪些附加捆绑包(因此包含 X 捆绑包将允许应用程序执行更多操作)。一个例子。
我们有一个订单对象,目前它与快递包中的实体具有双向关系,这意味着存在硬依赖关系。我想将其解耦,并让快递包选择性地向订单添加行为。考虑这个方法调用。
// no courier bundle is registered
$order->getShippingMethods();
// throws NoAvailableShippingMethodsException;
// one bundle registered
$order-getShippingMethods();
// returns an array with one shipping method
etc....
Run Code Online (Sandbox Code Playgroud)
现在我们有一个 OrderProvider 服务,它位于实体管理器之上 - 所以如果你调用
$orderProvider->GetOrder($id);
Run Code Online (Sandbox Code Playgroud)
您只需从数据库“直接”返回实体即可。我的问题是其他人在这里使用什么模式?我正在考虑将所有“业务逻辑”移动到实体扩展的模型类中,让服务层将实体拉出(实体是具有数据库和获取器中的属性的哑记录),然后使用配置(被注入到 OrderProvider 服务中的配置),这将修改模型的行为。对于给出的示例,我可能会做类似的事情(在 OrderProvider 内)..
// trimmed down for example purposes by removing exceptions etc.
public function getOrder($id)
{
$order = $this->orderRepository->findOneById($id);
if ($this->couriers){
$order->addCouriers($couriers);
} …Run Code Online (Sandbox Code Playgroud) configuration domain-driven-design model symfony doctrine-orm
我有一个多维数组如下:
Array(
[0] => Array
(
[name] => item 1
[quantity] => 2
[price] => 20.00
)
[1] => Array
(
[name] => item 2
[quantity] => 1
[price] => 15.00
)
[2] => Array
(
[name] => item 3
[quantity] => 4
[price] => 2.00
)
)
Run Code Online (Sandbox Code Playgroud)
我需要所有这些项目的"总计".现在很明显我可以通过以下方式获得这些:
$grand_total = 0;
foreach ($myarray as $item) {
$grand_total += $item['price'] * $item['quantity'];
}
echo $grand_total;
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 可以使用PHP中的任何数组函数在较少的代码行中完成吗?
保护防火墙后面的静态资产(javascript和css)的过程是什么?我有一个管理部分,大量使用javascript.我真的不想公开代码.
我目前使用assetic将所有javascript编译为/web/admin/js/xyz.js中的文件
有一种简单的方法可以做到这一点,我忽略了吗?
我有大量的图像文件,我需要从命令行重命名.我认为最好的方法是使用awk(请更正,如果这是不正确的).
文件名如下所示
1038282829128738912-1.jpg
Run Code Online (Sandbox Code Playgroud)
每个图像文件都以'103'开头,我想用'201003'替换文件名的这一部分 - 其余部分保持不变......例如.
2010038282829128738912-1.jpg
Run Code Online (Sandbox Code Playgroud)
图像位于一个主文件夹(图像)下的多个文件夹中 - 但将所有图像复制到一个文件夹(images_renamed)会很方便
我不知道从哪里开始 - 我用google搜索awk,但只能找到在文件中重命名文本的例子.
任何帮助赞赏.谢谢/
我有一个存储关系的mysql表.项目可以在一个方向上与另一个项目相关,或者两个项目可以彼此相关.
我想返回与我的主要项目相关的所有项目 - 但我还想检查相关项目是否与当前项目具有"反向关系"并将其显示为布尔值
|--------------|---------------|
| SKU | related_SKU |
|--------------|---------------|
| 0001 | 0099 |
| 0002 | 0099 |
| 0099 | 0001 |
|--------------|---------------|
Run Code Online (Sandbox Code Playgroud)
如果我想获得SKU = 0001的所有关系
SELECT related_SKU from relationships where SKU='0001'
Run Code Online (Sandbox Code Playgroud)
回报
|--------------|
| related_SKU |
|--------------|
| 0099 |
|--------------|
Run Code Online (Sandbox Code Playgroud)
但我想要的是
|--------------|---------------|
| related_SKU | reciprocal |
|--------------|---------------|
| 0099 | 1 |
|--------------|---------------|
Run Code Online (Sandbox Code Playgroud)
要么
SELECT related_SKU from relationships where SKU='0002'
|--------------|---------------|
| related_SKU | reciprocal |
|--------------|---------------|
| 0099 | 0 |
|--------------|---------------| …Run Code Online (Sandbox Code Playgroud) 我有两个表需要加入...我想在'id'上加入table1和table2 - 但是在表2中,id不是唯一的.我只希望为表2返回一个值,并且此值表示在指定日期范围(比如一个月)内名为"total_sold"的列的总和,但是我同时想要多个日期范围...
SELECT ta.id, sum(tb.total_sold) as total_sold_this_week, sum(tc.total_sold) as total_sold_this_month
FROM table_a as ta
LEFT JOIN table_b as tb ON ta.id=tb.id AND tb.date_sold BETWEEN ADDDATE(NOW(),INTERVAL -1 WEEK) AND NOW()
LEFT JOIN table_b as tc ON ta.id=tc.id AND tc.date_sold BETWEEN ADDDATE(NOW(),INTERVAL -1 MONTH) AND NOW()
GROUP BY ta.id
Run Code Online (Sandbox Code Playgroud)
这可行,但不会对行进行求和 - 只为每个id返回一行...如何从表b中获取总和而不是只有一行?请批评问题的格式是否可以使用更多的工作 - 如果需要,我可以重写并提供样本数据 - 这是一个更大问题的平凡版本.
-谢谢
我想转换它.
$data1 = array(
array('value' => '100.00', 'total' => '32'),
array('value' => '10.00', 'total' => '13'),
array('value' => '200.00', 'total' => '39'),
array('value' => '190.00', 'total' => '11'),
);
Run Code Online (Sandbox Code Playgroud)
进入这个
$data2 = array(
'value' => array(0 => '100.00', 1 => '10.00', 2 => '200.00', 3 => '190.00'),
'total' => array(0 => '32', 1 => '13', 2 => '39', 3 => '11')
);
Run Code Online (Sandbox Code Playgroud)
我可以通过迭代顶部数组,然后附加到一系列数组,以迂回的方式做到这一点,但我认为必须有一个我不知道的php数组函数可以更简洁地做到这一点.
http://www.php.net/manual/en/ref.array.php
值是浮点数和整数(如果它有任何区别),我只是在示例代码中将它们添加为字符串,因为它更容易读取IMO.最终数组顺序应与初始顺序匹配.我会给予最少LOC的正确答案,提供的性能并不比"长"版本差得多.PHP 5.4.