我对PHP比较陌生,希望你能帮我解决问题.我正在从数据库中选择数据到一个数组中进行计时.最后,我想计算给定客户在项目上花费的总小时数.
以下是填充多维数组的代码:...
foreach ($record as $data) {
$mArray = array();
$name = $data['user'];
$customer = $data['customer'];
$project = $data['project'];
$hours = $data['hours'];
$mArray[$name][$customer][$project] += $hours;
}
Run Code Online (Sandbox Code Playgroud)
...
我现在想迭代$ mArray来生成一个像这样的xml文件:
...
foreach ($mArray as $username) {
foreach ($mArray[$username] as $customerName) {
foreach ($mArray[$username][$customerName] as $project ) {
echo '<'.$username.'><'.$customerName.'><'.$project.'><hours>'.
$mArray[$username][$customerName][$project].'</hours></'.$project.'>
</'.$customerName.'></'.$username.'>';
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个嵌套的foreach不起作用.有人可以给我一些关于如何遍历这个结构的技巧吗?谢谢你的阅读!
更新:根据我迄今收到的评论(并感谢所有人),我有:
foreach ($mArray as $userKey => $username) {
foreach ($mArray[$userKey] as $customerKey => $customerName) {
foreach ($mArray[$userKey][$customerKey] as $projectKey => $projectName) {
echo '<name>'.$userKey.'</name>';
echo "\n"; …Run Code Online (Sandbox Code Playgroud) 我有一个问题,嵌套div被其父div重叠,在这里搜索已经但没有解决方案适合我的问题.
CSS示例:
#content {
position: relative;
top: 80px;
min-height: 530px;
width: 1000px;
z-index: 2;
}
#category {
position: absolute;
top: -30px;
right: 0;
z-index: 1;
}
Run Code Online (Sandbox Code Playgroud)
示例HTML:
<div id="content">
<div id="category"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
应该是什么样的:
嵌套的div #category应该粘在它的右上方,#content并且应该在它后面,这样它#content就会覆盖它.我知道它可能不是处理它的最佳方式,但我需要这样做,因为整个项目的糟糕风格(我只是稍微调整一下).
提前致谢!
我是StackOverflow的新用户,因此,如果我无意违反了任何论坛规则,请原谅我。
我正在从Cognos获取XML文档输出,我希望将其用作Crystal报表的输入。但是,Crystal Report所需的XML格式与Cognos输出的XML格式不同。
我正在尝试使用XSLT转换输入XML文档(Cognos),以获取Crystal所需的XML。
设置了上下文之后,下面是来自Cognos的Input XML:
<?xml version="1.0"?>
<dataset>
<metadata>
<item Name="EmpId" />
<item Name="EmpName" />
<item Name="DeptName" />
</metadata>
<data>
<rows>
<row>
<value>1</value>
<value>John</value>
<value>Finance</value>
</row>
<row>
<value>2</value>
<value>Peter</value>
<value>Admin</value>
</row>
</rows>
</data>
Run Code Online (Sandbox Code Playgroud)
Crystal Report所需的XML格式:
<?xml version="1.0"?>
<dataset>
<row>
<EmpId>1</EmpId>
<EmpName>John</EmpName>
<DeptName>Finance</DeptName>
</row>
<row>
<EmpId>2</EmpId>
<EmpName>Peter</EmpName>
<DeptName>Admin</DeptName>
</row>
</dataset>
Run Code Online (Sandbox Code Playgroud)
我在XSLT下方编写了所需的转换:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<dataset>
<xsl:for-each select="./dataset/data/rows/row">
<row>
<xsl:for-each select="/dataset/metadata/item">
<xsl:element name="{@Name}">
<xsl:for-each select="/dataset/data/rows/row/value">
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</row>
</xsl:for-each>
</dataset>
</xsl:template> …Run Code Online (Sandbox Code Playgroud) 基本上,我需要让我的程序能够为我创建多个(无限制)变量,我仍然可以通过我的代码使用操作,而不需要我定义它们.
我想将一个字母和一个数字作为变量名称,例如a1,并让程序创建新变量,只需在数字中加1即可.所以它会创建a1到a30左右.我该怎么做?
我的程序将添加多项式,并且变量(或现在列表)是用于分隔不同的单项式,并且由于我不知道多项式中将存在多少单项式,我需要一种方法来使数字灵活,所以我对于单项式有一个确切的空间,没有额外的,也没有更少.
这是代码:
# Sample polynomial set to x, the real code will say x = (raw_input("Enter a Polynomial")).
x = '(5xx + 2y + 2xy)+ (4xx - 1xy)'
# Isdigit command set to 't' to make the code easier to write.
t = str.isdigit
# Defining v for later use.
v = 0
# Defining 'b' which will be the index number that the program will look at.
b = 1
# Creating 'r' …Run Code Online (Sandbox Code Playgroud) 我是Sencha Extjs的新手,我遇到了模型设计问题.以下是来自服务器的示例响应:
[
{
"success": "true",
"data": {
"sromain": [
{
"corporation": "DEV 1 s.r.o.",
"dbName": "dev_1_s_r_o_",
"prijmyCelk": "2 106,00 €",
"nakladyCelk": "2 049,00 €",
"ziskCelk": "57,00 €",
"neuhrVydCelk": "2 106,00 €",
"neuhrPrijCelk": "2 049,00 €",
"dph": "9,52 €"
}
],
"branches": [
{
"branch_name": "Bratislava",
"branch_code": "BA",
"strediskoprijmyCelk": "180,00 €",
"strediskonakladyCelk": "0,00 €",
"strediskoziskCelk": "180,00 €",
"strediskoneuhrVydCelk": "180,00 €",
"strediskoneuhrPrijCelk": "0,00 €",
"streddphCelk": "30,00 €"
},
{
"branch_name": "Banská Bystrica",
"branch_code": "BB",
"strediskoprijmyCelk": "600,00 €",
"strediskonakladyCelk": "0,00 €",
"strediskoziskCelk": …Run Code Online (Sandbox Code Playgroud) 我有以下代码:(为了这个问题的目的非常简化,但完美地说明了我遇到的问题)
#!/usr/bin/perl
use strict;
use warnings;
&outer;
my $connected_sub;
sub outer {
print "HELLO\n";
&$connected_sub;
$connected_sub = sub {
print "GOODBYE\n";
}
}
Run Code Online (Sandbox Code Playgroud)
运行时程序会给出此输出和错误:
HELLO
Use of uninitialized value in subroutine entry at subTesting line 13.
Can't use string ("") as a subroutine ref while "strict refs" in use at subTesting.pl line 13.
Run Code Online (Sandbox Code Playgroud)
我完全忽略了什么吗?我无法理解或弄清楚这是什么问题.
我有这样的列表:
[
[1, 37, 79, 164, 155, 32, 87, 39, 113, 15, 18, 78, 175, 140, 200, 4, 160, 97, 191, 100, 91, 20, 69, 198, 196],
[2, 123, 134, 10, 141, 13, 12, 43, 47, 3, 177, 101, 179, 77, 182, 117, 116, 36, 103, 51, 154, 162, 128, 30],
[3, 48, 123, 134, 109, 41, 17, 159, 49, 136, 16, 130, 141, 29, 176, 2, 190, 66, 153, 157, 70, 114, 65, 173, 104, 194, 54]
]
Run Code Online (Sandbox Code Playgroud)
我想找到列表项的索引,其中搜索值在第一列中. …
我想生成一个列表列表,其中包含渐进数量的随机生成的二进制值.
如何添加一个条件告诉python将随机值添加到列表中,直到达到指定的长度?在这种情况下,每个新列表的长度应该是逐渐变大的奇数.
from random import randint
shape = []
odds = [x for x in range(100) if x % 2 == 1]
while len(shape) < 300:
for x in odds:
randy = [randint(0,1)] * x ?? # need to run this code x amount of times
shape.append(randy) # so that each len(randy) = x
Run Code Online (Sandbox Code Playgroud)
*我宁愿不使用count + = 1
期望的输出:
形状[[0],[0,1,0],[1,1,0,1,0],[1,0,0,0,1,1,0] ......等]
我使用模型添加了嵌套在另一个对象中的对象.像这样:
Ingresso模型 - >
def as_json(options=nil)
super(:include => [:usuario, :tipo_de_ingresso])
end
Run Code Online (Sandbox Code Playgroud)
在tipo_de_ingresso模型中,我想添加另一个嵌套的对象.这里:
def as_json(options=nil)
super(:include => :entradas)
end
Run Code Online (Sandbox Code Playgroud)
但是当我得到它时ingressos.json,我输了entradas.如果我得到tipo_de_ingressos.json,entradas嵌套,好吧,但是当我得到ingressos.json,他们不在那里.
我怎么能entradas在tipo_de_ingresso打电话时嵌入ingresso?
如果我将哈希引用定义为:
my %hash1=(
"a" => 1,
"b" => 2,
"c" => {
"d" => 4,
"e" => 5
}
);
my $r_hash1 = \%hash1;
Run Code Online (Sandbox Code Playgroud)
会使用:
$r_hash1->{c}=();
Run Code Online (Sandbox Code Playgroud)
清除%hash1 {c}中的键是否可以重用?
如果是这样,我也想知道我是否有:
my %hash1=(
"a" => 1,
"b" => 2
);
my %hash2=(
"d" => 4,
"e" => 5
);
my $r_hash1 = \%hash1;
my $r_hash2 = \%hash2;
$r_hash1->{"c"} = $r_hash2;
Run Code Online (Sandbox Code Playgroud)
是否使用:
$r_hash1->{c}=();
Run Code Online (Sandbox Code Playgroud)
释放%hash2使用的内存以供重用,因为它必须在哈希上下文中使用:
%$r_hash1->{c}
Run Code Online (Sandbox Code Playgroud)
但是这会在哈希上下文中查看$ r_hash1,而不是$ r_hash1 - > {c}的内容.
谢谢.