open source pdf to image converter c# : Allow saving of pdf form SDK application service wpf html .net dnn 05-welling-php-mysql-web12-part57

87
Multidimensional Arrays
You can see from this definition that the 
$products
array now contains three arrays.
To access the data in a one-dimensional array, recall that you need the name of the
array and the index of the element.A two-dimensional array is similar, except that each
element has two indices:a row and a column.(The top row is row 0, and the far-left
column is column 0.)
To display the contents of this array,you could manually access each element in order
like this:
echo ‘|’.$products[0][0].’|’.$products[0][1].’|’.$products[0][2].’|<br />’;
echo ‘|’.$products[1][0].’|’.$products[1][1].’|’.$products[1][2].’|<br />’;
echo ‘|’.$products[2][0].’|’.$products[2][1].’|’.$products[2][2].’|<br />’;
Alternatively,you could place a 
for
loop inside another 
for
loop to achieve the same
result:
for ( $row = 0; $row < 3; $row++ )
{
for ( $column = 0; $column < 3; $column++ )
{
echo ‘|’.$products[$row][$column];
}
echo ‘|<br />’;
}
Both versions of this code produce the same output in the browser:
|TIR|Tires|100|
|OIL|Oil|10|
|SPK|Spark Plugs|4|
The only difference between the two examples is that your code will be shorter if you
use the second version with a large array.
You might prefer to create column names instead of numbers,as shown in Figure 3.3.
To store the same set of products,with the columns named as they are in Figure 3.3, you
would use the following code:
$products = array( array( ‘Code’ => ‘TIR’,
‘Description’ => ‘Tires’,
‘Price’ => 100
),
array( ‘Code’ => ‘OIL’,
‘Description’ => ‘Oil’,
‘Price’ => 10
),
Allow saving of pdf form - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
adding text to a pdf form; pdf form save in reader
Allow saving of pdf form - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
cannot save pdf form; can reader edit pdf forms
88
Chapter 3 Using Arrays
array( ‘Code’ => ‘SPK’,
‘Description’ => ‘Spark Plugs’,
‘Price’ =>4
)
);
This array is easier to work with if you want to retrieve a single value.Remembering
that the description is stored in the Description column is easier than remembering it is
stored in column 1. Using descriptive indices,you do not need to remember that an
item is stored at [x][y].You can easily find your data by referring to a location with
meaningful row and column names.
You do,however,lose the ability to use a simple 
for
loop to step through each col-
umn in turn.Here is one way to write code to display this array:
for ( $row = 0; $row < 3; $row++ )
{
echo ‘|’.$products[$row][‘Code’].’|’.$products[$row][‘Description’].
‘|’.$products[$row][‘Price’].’|<br />’;
}
Using a 
for
loop,you can step through the outer,numerically indexed 
$products
array.
Each row in the 
$products
array is an array with descriptive indices.Using the 
each()
and 
list()
functions in a 
while
loop,you can step through these inner arrays.
Therefore, you need a 
while
loop inside a 
for
loop:
for ( $row = 0; $row < 3; $row++ )
{
while ( list( $key, $value ) = each( $products[ $row ] ) )
{
echo “|$value”;
}
echo ‘|<br />’;
}
You do not need to stop at two dimensions. In the same way that array elements can
hold new arrays, those new arrays,in turn,can hold more arrays.
A three-dimensional array has height, width, and depth.If you are comfortable think-
ing of a two-dimensional array as a table with rows and columns,imagine a pile or deck
of those tables. Each element is referenced by its layer,row,and column.
If Bob divided his products into categories,you could use a three-dimensional array
to store them. Figure 3.4 shows Bob’s products in a three-dimensional array.
VB.NET Image: How to Save Image & Print Image Using VB.NET
Allow VB.NET developers to save source image file to printing multi-page document files, like PDF and Word This VB.NET image saving control offers mature APIs
cannot edit pdf form; change font in pdf fillable form
C# Image: Create Web Image Viewer in C#.NET Application
Annotate and redact on web document and image, collaboration with ease; Allow saving document and in C# ASP.NET web viewer, like office document to PDF or TIFF
changing font size in a pdf form; adding an image to a pdf form
89
Multidimensional Arrays
Figure 3.4 This three-dimensional array allows you to divide products into
categories.
From the code that defines this array,you can see that a three-dimensional array is an
array containing arrays of arrays:
$categories = array( array ( array( ‘CAR_TIR’, ‘Tires’, 100 ),
array( ‘CAR_OIL’, ‘Oil’, 10 ),
array( ‘CAR_SPK’, ‘Spark Plugs’, 4 )
),
array ( array( ‘VAN_TIR’, ‘Tires’, 120 ),
array( ‘VAN_OIL’, ‘Oil’, 12 ),
array( ‘VAN_SPK’, ‘Spark Plugs’, 5 )
),
array ( array( ‘TRK_TIR’, ‘Tires’, 150 ),
array( ‘TRK_OIL’, ‘Oil’, 15 ),
array( ‘TRK_SPK’, ‘Spark Plugs’, 6 )
)
);
product attribute
Tires
Oil
Spark Plugs
100
10
4
TLR
Description
Truck Parts
Price
Code
OIL
SPK
product attribute
Tires
Oil
Spark Plugs
100
10
4
TLR
Description
Van Parts
Price
Code
OIL
SPK
product attribute
p
r
o
d
u
c
t
Tires
Oil
Spark Plugs
100
10
4
CAR_TIR
Description
Car Parts
Price
Code
CAR_OIL
CAR_SPK
p
r
o
d
u
c
t
c
a
t
e
g
o
r
y
C# PDF metadata Library: add, remove, update PDF metadata in C#.
Allow C# Developers to Read, Add, Edit, Update all the aspects of PDF document manipulations application, like creating, viewing, saving, editing, annotating
create a fillable pdf form from a word document; add text fields to pdf
Annotate, Redact Images in Web Image Viewer | Online Tutorials
formats and file types like multi-page TIFF and PDF. burnAnnotation: This API can allow you to bind annotation file operation online, like file opening & saving
create a pdf form; create a pdf form in word
90
Chapter 3 Using Arrays
Because this array has only numeric indices,you can use nested 
for
loops to display its
contents:
for ( $layer = 0; $layer < 3; $layer++ )
{
echo “Layer $layer<br />”;
for ( $row = 0; $row < 3; $row++ )
{
for ( $column = 0; $column < 3; $column++ )
{
echo ‘|’.$categories[$layer][$row][$column];
}
echo ‘|<br />’;
}
}
Because of the way multidimensional arrays are created, you could create four-,five-,or
even six-dimensional arrays.There is no language limit to the number of dimensions, but
it is difficult for people to visualize constructs with more than three dimensions.Most
real-world problems match logically with constructs of three or fewer dimensions.
Sorting Arrays
Sorting related data stored in an array is often useful.You can easily take a one-dimensional
array and sort it into order.
Using sort()
The following code showing the 
sort()
function results in the array being sorted into
ascending alphabetical order:
$products = array( ‘Tires’, ‘Oil’, ‘Spark Plugs’ );
sort($products);
The array elements will now appear in the order 
Oil
,
Spark Plugs
,
Tires
.
You can sort values by numerical order,too.If you have an array containing the
prices of Bob’s products,you can sort it into ascending numeric order as follows:
$prices = array( 100, 10, 4 );
sort($prices);
The prices will now appear in the order 4,10,100.
Note that the 
sort()
function is case sensitive.All capital letters come before all low-
ercase letters.So A is less than Z,but Z is less than a.
The function also has an optional second parameter.You may pass one of the con-
stants 
SORT_REGULAR
(the default),
SORT_NUMERIC
,or 
SORT_STRING
.The ability to specify
the sort type is useful when you are comparing strings that might contain numbers,for
example,2 and 12.Numerically,2 is less than 12, but as strings 
‘12’
is less than 
‘2’
.
C# PDF: How to Create PDF Document Viewer in C#.NET with
be created in C# Web Forms, Windows Form and mobile to create PDF Windows viewer for PDF document viewing, annotating, redacting, saving and printing in
allow users to save pdf form; add form fields to pdf without acrobat
C# PDF Text Search Library: search text inside PDF file in C#.net
Allow to search defined PDF file page or the coding example illustrates how to perform PDF text searching option, creating search result, and saving the result
convert word document to editable pdf form; add photo to pdf form
91
Sorting Multidimensional Arrays
Using asort() and ksort() to Sort Arrays
If you are using an array with descriptive keys to store items and their prices,you need to
use different kinds of sort functions to keep keys and values together as they are sorted.
The following code creates an array containing the three products and their associated
prices and then sorts the array into ascending price order:
$prices = array( ‘Tires’=>100, ‘Oil’=>10, ‘Spark Plugs’=>4 );
asort($prices);
The function 
asort()
orders the array according to the value of each element. In the
array,the values are the prices,and the keys are the textual descriptions.If,instead of
sorting by price,you want to sort by description,you can use 
ksort()
,which sorts by
key rather than value.The following code results in the keys of the array being ordered
alphabetically—
Oil
,
Spark Plugs
,
Tires:
$prices = array( ‘Tires’=>100, ‘Oil’=>10, ‘Spark Plugs’=>4 );
ksort($prices);
Sorting in Reverse
The three different sorting functions—
sort()
,
asort()
,and 
ksort()
—sort an array
into ascending order. Each function has a matching reverse sort function to sort an array
into descending order.The reverse versions are called
rsort()
,
arsort()
,and 
krsort()
.
You use the reverse sort functions in the same way you use the ascending sort func-
tions.The 
rsort()
function sorts a single-dimensional numerically indexed array into
descending order.The 
arsort()
function sorts a one-dimensional array into descending
order using the value of each element.The 
krsort()
function sorts a one-dimensional
array into descending order using the key of each element.
Sorting Multidimensional Arrays
Sorting arrays with more than one dimension,or by something other than alphabetical
or numerical order,is more complicated. PHP knows how to compare two numbers or
two text strings, but in a multidimensional array, each element is an array.PHP does not
know how to compare two arrays,so you need to create a method to compare them.
Most of the time,the order of the words or numbers is fairly obvious,but for complicat-
ed objects, it becomes more problematic.
User-Defined Sorts
The following is the definition of a two-dimensional array used earlier.This array stores
Bob’s three products with a code,a description,and a price for each:
$products = array( array( ‘TIR’, ‘Tires’, 100 ),
array( ‘OIL’, ‘Oil’, 10 ),
array( ‘SPK’, ‘Spark Plugs’, 4 ) );
C# Create PDF from CSV to convert csv files to PDF in C#.net, ASP.
application. CSV files are saved to PDF documents by keeping original layout. Selection for saving or removing cell border. Support
add print button to pdf form; change pdf to fillable form
VB.NET PDF Text Search Library: search text inside PDF file in vb.
Allow to search defined PDF file page or the coding example illustrates how to perform PDF text searching option, creating search result, and saving the result
build pdf forms; add fillable fields to pdf
92
Chapter 3 Using Arrays
If you sort this array, in what order will the values appear? Because you know what the
contents represent,there are at least two useful orders.You might want the products sort-
ed into alphabetical order using the description or by numeric order by the price. Either
result is possible,but you need to use the function 
usort()
and tell PHP how to com-
pare the items.To do this, you need to write your own comparison function.
The following code sorts this array into alphabetical order using the second column
in the array—the description:
function compare($x, $y)
{
if ( $x[1] == $y[1] )
return 0;
else if ( $x[1] < $y[1] )
return -1;
else
return 1;
}
usort($products, ‘compare’);
So far in this book,you have called a number of the built-in PHP functions.To sort this
array,you need to define a function of your own.We examine writing functions in detail
in Chapter 5,“Reusing Code and Writing Functions,” but here is a brief introduction.
You define a function by using the keyword 
function
.You need to give the function
a name.Names should be meaningful,so you can call it 
compare()
for this example.
Many functions take parameters or arguments.This 
compare()
function takes two:one
called 
$x
and one called 
$y
.The purpose of this function is to take two values and deter-
mine their order.
For this example,the 
$x
and 
$y
parameters are two of the arrays within the main
array,each representing one product.To access the 
Description
of the array 
$x
,you
type 
$x[1]
because the 
Description
is the second element in these arrays, and number-
ing starts at zero.You use 
$x[1]
and 
$y[1]
to compare each 
Description
from the
arrays passed into the function.
When a function ends,it can give a reply to the code that called it.This process is
called returning a value.To return a value,you use the keyword 
return
in the function.
For example,the line 
return 1;
sends the value 
1
back to the code that called the 
function.
To be used by 
usort()
,the 
compare()
function must compare 
$x
and 
$y
.The func-
tion must return 
0
if 
$x
equals 
$y
,a negative number if it is less, or a positive number if
it is greater.The function will return 
0
,
1
,or 
-1
,depending on the values of 
$x
and 
$y
.
The final line of code calls the built-in function 
usort()
with the array you want
sorted (
$products
) and the name of the comparison function (
compare()
).
C# Excel: Create Document Viewer for Excel Viewing and Editing
and view Excel document in the form of Png conversion in viewer, converting Excel to PDF, TIFF or Allow saving annotated Excel file in C#.NET Document Viewer
best way to make pdf forms; add text field to pdf
C# Image: Use C# Class to Insert Callout Annotation on Images
SDKs including GIF, PNG, BMP, JPEG, TIFF, PDF & Word Project. Our C# Imaging Annotating controls allow users to tiff formats by using our C# image saving APIs.
add image to pdf form; adding images to pdf forms
93
Sorting Multidimensional Arrays
If you want the array sorted into another order,you can simply write a different
comparison function.To sort by price,you need to look at the third column in the array
and create this comparison function:
function compare($x, $y)
{
if ( $x[2] == $y[2] )
return 0;
else if ( $x[2] < $y[2] )
return -1;
else
return 1;
}
When 
usort($products, ‘compare’)
is called, the array is placed in ascending order
by price.
The u in 
usort()
stands for user because this function requires a user-defined com-
parison function.The 
uasort()
and 
uksort()
versions of 
asort
and 
ksort
also require
user-defined comparison functions.
Similar to 
asort()
,
uasort()
should be used when sorting a non-numerically
indexed array by value.Use 
asort
if your values are simple numbers or text.Define a
comparison function and use 
uasort()
if your values are more complicated objects such
as arrays.
Similar to 
ksort()
,
uksort()
should be used when sorting a non-numerically
indexed array by key.Use 
ksort
if your keys are simple numbers or text.Define a com-
parison function and use 
uksort()
if your keys are more complicated objects such as
arrays.
Reverse User Sorts
The functions 
sort()
,
asort()
,and 
ksort()
all have a matching reverse sorts with an r
in the function name.The user-defined sorts do not have reverse variants,but you can
sort a multidimensional array into reverse order.Because you provide the comparison
function,you can write a comparison function that returns the opposite values.To sort
into reverse order,the function needs to return 
1
if 
$x
is less than 
$y
and 
-1
if 
$x
is
greater than 
$y
.For example,
function reverse_compare($x, $y)
{
if ( $x[2] == $y[2] )
return 0;
else if ( $x[2] < $y[2] )
return 1;
else
return -1;
}
94
Chapter 3 Using Arrays
Calling 
usort($products, ‘reverse_compare’)
would now result in the array being
placed in descending order by price.
Reordering Arrays
For some applications,you might want to manipulate the order of the array in other
ways.The function 
shuffle()
randomly reorders the elements of your array.The func-
tion 
array_reverse()
gives you a copy of your array with all the elements in reverse
order.
Using shuffle()
Bob wants to feature a small number of his products on the front page of his site.He has
a large number of products but would like three randomly selected items shown on the
front page. So that repeat visitors do not get bored,he would like the three chosen prod-
ucts to be different for each visit.He can easily accomplish his goal if all his products are
in an array. Listing 3.1 displays three randomly chosen pictures by shuffling the array into
a random order and then displaying the first three.
Listing 3.1 bobs_front_page.php—Using PHP to Produce a Dynamic Front Page
for Bob’s Auto Parts
<?php
$pictures = array(‘tire.jpg’, ‘oil.jpg’, ‘spark_plug.jpg’,
‘door.jpg’, ‘steering_wheel.jpg’,
‘thermostat.jpg’, ‘wiper_blade.jpg’,
‘gasket.jpg’, ‘brake_pad.jpg’);
shuffle($pictures);
?>
<html>
<head>
<title>Bob’s Auto Parts</title>
</head>
<body>
<center>
<h1>Bob’s Auto Parts</h1>
<table width = ‘100%’>
<tr>
<?php
for ( $i = 0; $i < 3; $i++ )
{
echo ‘<td align=”center”><img src=”’;
echo $pictures[$i];
echo ‘“ width=”100” height=”100”></td>’;
95
Reordering Arrays
}
?>
</tr>
</table>
</center>
</body>
</html>
Because the code selects random pictures,it produces a different page nearly every time
you load it,as shown in Figure 3.5.
Figure 3.5 The 
shuffle()
function enables you to feature three randomly
chosen products.
In older versions of PHP,the 
shuffle()
function required that you seed the random
number generator first by calling 
srand()
.This step is no longer required.
The 
shuffle()
function has not had a very illustrious history.In older versions of
PHP,it did not shuffle very well,giving a result that was not very random.In version
4.2.x on Windows,for instance,it did not shuffle at all,giving a result that was exactly
what you started with.In version 5,it seems to work.If this function is important to
you,test it on your server before employing it in your applications.
Because you do not really need the whole array reordered,you can achieve the same
result using the function
array_rand()
.
Listing 3.1 Continued
96
Chapter 3 Using Arrays
Using array_reverse()
The function 
array_reverse()
takes an array and creates a new one with the same
contents in reverse order.For example,there are a number of ways to create an array
containing a countdown from 10 to 1.
Using 
range()
usually creates an ascending sequence,which you could place in
descending order using 
array
_
reverse()
or 
rsort()
.Alternatively,you could create the
array one element at a time by writing a 
for
loop:
$numbers = array();
for($i=10; $i>0; $i--)
array_push( $numbers, $i );
for
loop can go in descending order like this:You set the starting value high and at
the end of each loop use the 
--
operator to decrease the counter by one.
Here, you create an empty array and then use 
array_push()
for each element to add
one new element to the end of an array.As a side note,the opposite of 
array_push()
is
array_pop()
.This function removes and returns one element from the end of an array.
Alternatively,you can use the 
array_reverse()
function to reverse the array created
by 
range()
:
$numbers = range(1,10);
$numbers = array_reverse($numbers);
Note that 
array_reverse()
returns a modified copy of the array. If you do not 
want the original array,as in this example,you can simply store the new copy over the
original.
If your data is just a range of integers, you can create it in reverse order by passing –1
as the optional step parameter to 
range()
:
$numbers = range(10, 1, -1);
Loading Arrays from Files
In Chapter 2,“Storing and Retrieving Data,”you learned how to store customer orders
in a file.Each line in the file looked something like this:
15:42, 20th April 4 tires 1 oil 6 spark plugs $434.00 22 Short St, Smalltown
To process or fulfill this order, you could load it back into an array.Listing 3.2 displays
the current order file.
Listing 3.2 vieworders.php— Using PHP to Display Orders for Bob
<?php
//create short variable name
$DOCUMENT_ROOT = $_SERVER[‘DOCUMENT_ROOT’];
Documents you may be interested
Documents you may be interested